ऐसा करने के कई तरीके हैं, लेकिन सबसे आसान तरीका यह होगा कि आप स्वीकार्य कॉलम से लूप करें और फिर उचित तरीके से संलग्न करें।
// I generally use array and implode to do list concatenations. It avoids
// the need for a test condition and concatenation. It is debatable as to
// whether this is a faster design, but it is easier and chances are you
// won't really need to optimize that much over a database table (a table
// with over 10 columns generally needs to be re-thought)
$search = array();
// you want to white-list here. It is safer and it is more likely to prevent
// destructive user error.
$valid = array( 'condition', 'brand' /* and so on */ );
foreach( $valid as $column )
{
// does the key exist?
if( isset( $_GET[ $column ] ) )
{
// add it to the search array.
$search[] = $column . ' = ' . mysql_real_escape_string( $_GET[ $column ] );
}
}
$sql = 'SELECT * FROM TABLE_NAME WHERE ' . implode( ' AND ', $search );
// run your search.
अगर आप वाकई 'if' स्टेटमेंट से छुटकारा पाने की कोशिश कर रहे हैं, तो आप इसका इस्तेमाल कर सकते हैं:
$columns = array_intersect( $valid, array_keys( $_GET ) );
foreach( $columns as $column )
{
$search[] = $column . ' = ' . mysql_real_escape_string( $_GET[ $column ] );
}
$sql = 'SELECT * FROM TABLE_NAME WHERE ' . implode( ' AND ', $search );
लेकिन आप यह निर्धारित करने के लिए वास्तविक बेंचमार्क चलाना चाह सकते हैं कि क्या यह काफी बेहतर विकल्प है।