- Compress API filters to a loop

- Check for filters for valid fields
This commit is contained in:
Aaron Daniels
2016-01-14 05:22:37 +10:00
parent 6286d7cb6a
commit 87e88dacfd
2 changed files with 17 additions and 27 deletions
+12 -8
View File
@@ -69,17 +69,21 @@ class component {
$COUNT = 0;
if (isset($options['filter'])) {
$COUNT++;
$validFields = array('device_id','type','id','label','status','disabled','ignore','error');
$SQL .= " ( ";
foreach ($options['filter'] as $field => $array) {
if ($array[0] == 'LIKE') {
$SQL .= "`".$field."` LIKE ? AND ";
$array[1] = "%".$array[1]."%";
// Only add valid fields to the query
if (in_array($field,$validFields)) {
if ($array[0] == 'LIKE') {
$SQL .= "`".$field."` LIKE ? AND ";
$array[1] = "%".$array[1]."%";
}
else {
// Equals operator is the default
$SQL .= "`".$field."` = ? AND ";
}
array_push($PARAM,$array[1]);
}
else {
// Equals operator is the default
$SQL .= "`".$field."` = ? AND ";
}
array_push($PARAM,$array[1]);
}
// Strip the last " AND " before closing the bracket.
$SQL = substr($SQL,0,-5)." )";