Ich habe einen Kontrollkästchen-Filter, wo mehrere Optionen "überprüft" werden können. Sobald sie überprüft sind, werden sie in einem JavaScript-Array gespeichert und über AJAX an die PHP-Datei übergeben. Von dort versuche ich eine foreach-Schleife zu machen, um jedes Element im Array zu erhalten und eine neue where-Bedingung zur SQL-Anweisung für jedes Element hinzuzufügen und die Abfrage auszuführen.PHP - neue WHERE-Klausel zu SQL-Anweisung innerhalb foreach Schleife hinzufügen
JavaScript
var vendors = [];
function filterResults($this)
{
var vendor = $($this).attr('data-id');
if($($this).prop('checked'))
{
var action = 'add';
vendors.push(vendor);
}
else
{
var action = 'remove';
var index = vendors.indexOf(vendor);
if(index >= 0)
{
vendors.splice(index, 1);
}
}
PHP Script, der ausgeführt wird (Filter-results.php)
if(is_array($_POST['vendors']))
{
$collaterals = $vendor->updateResults($_POST['vendors']);
var_dump($collaterals);
foreach($collaterals as $col)
{
include '../parts/item.php';
}
}
PHP-Funktion enthält foreach Schleife
public function updateResults($vendors)
{
try
{
$items = array();
$sql = "SELECT * FROM collaterals WHERE ";
foreach ($vendors as $ven)
{
echo $ven;
$sql .= "vendor = ".$ven." OR ";
}
$stmt = $this->db->prepare($sql);
$stmt->execute();
while($row = $stmt->fetchObject())
{
$items[] = $row;
}
return $items;
}
catch(Exception $e)
{
$e->getMessage();
}
}
Das 'Echo' innerhalb der PHP-Funktion funktioniert, aber die var_dump() wird 'NULL', was bedeutet, dass irgendwo innerhalb der SQL-Anweisung ein Fehler auftritt.
Jede Hilfe würde sehr geschätzt werden. Vielen Dank!
Vielen Dank. Alle Antworten waren sehr hilfreich! –