简体   繁体   中英

Query Based on User Input—PHP

A script I'm using takes in a string of field name/value pairs, splits them, and creates a query from them. The string is formatted like this:

var1==value1,var2==value2...

The values will be submitted by users on the frontend of the website. So, if a user selects a value for var1 and var4 but not 2 and 3 I would need the string to look like this:

var1==value1,var4==value4

Getting the user-submitted data isn't a problem. What is the best way to add in the field name and == only if the associated value is not blank?

if (isset($varname))

isset — Determine if a variable is set and is not NULL

if(empty($varname)))

empty — Determine whether a variable is empty

if(is_null($varname)))

is_null — Finds whether a variable is NULL

In other words, it only returns true when the variable is null. is_null() is the opposite of isset(), except you can use isset() on unknown variables.

You could do something like

$pairs =  "var1==stuff,var3==morestuff"

if(strpos($pairs, "var2==") !== false){
    $pairs .= "var2==defaultvalue";
}

And you could do that for every var# you want. This would be able to check if the

About the strpos : How do I check if a string contains a specific word in PHP?

Just whip over the submitted form fields looking for anything with a value:

foreach($_POST as $key => $value){

    if($value != ''){
            // do stuff
    }
}

also add a check to skip the submit = submit bit :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM