यह एक त्वरित उदाहरण है। मैं नहीं जानता कि किस प्रकार का डेटा JRequest::getVar रिटर्न (हमेशा एक स्ट्रिंग, या मिश्रित प्रकार?) लेकिन यह आपको शुरू करना चाहिए। फ़ोरैच लूप में जो भी एस्केपिंग विधि लागू होती है, उसका उपयोग करना सुनिश्चित करें:
if ($post) {
$criteria = array();
//get all search variables
$criteria['type'] = JRequest::getVar('type');
$criteria['classifications'] = JRequest::getVar('classifications', array(0), 'post', 'array');
$criteria['rating'] = JRequest::getVar('rating');
//if there are some criteria, make an array of fieldName=>Value maps
if(!empty($criteria)) {
$where = array();
foreach($criteria as $k => $v) {
//IMPORTANT!!
//$v is the value of the field, needs to be quoted correctly!!
$where[] = "$k = '$v'";
}
}
//create search string
$query = "SELECT * FROM #__db_clients";
if($where) {
$query .= " where " . join(' AND ', $where);
}
} else {
echo 'There has been an error, please try again.';
};