Ich schreibe SQL-Abfrage basierend auf Array-Werte, aber ich bekomme ein falsches Ergebnis.Erstellen Sie dynamische UND-Klausel in MySQL-Abfrage mit PHP
Zum Beispiel, wenn mein Array-Wert sind [ 'PAK', 'USA'] dann sollte Abfrage sein: -
Select * From `search` WHERE country = 'PAK' AND country = 'USA'
und wenn Array-Werte sind [ 'USA', 'China'] dann sollte Abfrage sein: -
Select * From `search` WHERE country = 'USA' AND country = 'China'
und so weiter ..
ich tue dies, aber ich bin das falsche Ergebnis wie folgt erhalten: -
SELECT * FROM `search` WHERE country = '' AND country = 'Pakistan' AND country = 'United States'
Ich frage mich, warum Land = ‚‘ immer am Anfang der Abfrage Hinzufügen .. Das ist, warum ich das falsche Ergebnis bin immer. Bitte hilf mir. Vielen Dank im Voraus .. Unten ist mein Code ..
PHP
$query_parts = array();
foreach($_POST['countryArray'] as $array){
$query_parts[] = "'".$array."'";
}
$string = implode(' AND country = ', $query_parts);
//echo $string;
$query = "SELECT * FROM `search` WHERE country = {$string}";
echo $query;
Verwenden 'empty ($ array)' innerhalb foreach Schleife Leerwert zu vermeiden !! – Saty
können Sie bitte hier die $ _POST ['countryArray'] posten. Es funktioniert gut, wenn das Array wie $ test = array ("USA", "China") ist; – Mujahidh