2017-07-17 3 views
0

Ich habe SQL-Abfrage. Ich möchte überprüfen, ob die Ergebnisse den Wert "xxx" enthalten.php - überprüfen, ob die Ergebnisse Wert enthalten

Gibt es eine PHP-Funktion, die das unterstützt?

Ich habe versucht "in_array", aber es funktioniert nicht.

$stylesQuery = mysql_query("SELECT styleID FROM itins_styles WHERE (itinID = 5)"); 
    $stylesIndex = mysql_fetch_array($stylesQuery); 
    if (in_array ("xxx", $stylesIndex)) 
+1

** Stop ** mit veraltet mysql_ * 'API. Verwenden Sie mysqli_ * 'oder' PDO' – Jens

+1

'Mysql' ist veraltet. Verwende mysqli. –

+1

Verwenden Sie 'mysqli' und zeigen Sie Ihre Array-Struktur von' $ stylesIndex' an. – Virb

Antwort

0

Sie haben vergessen, die ; in Ihrem mysqli_fetch_array($styleQuery).

$stylesIndex = mysqli_fetch_array($styleQuery); 

Wenn Ihr Array-Variable $stylesIndex den Wert enthält xxx dann sollte es funktionieren.

+0

Ich empfehle Ihnen, 'mysqli' oder' PDO' anstelle von 'mysql' zu verwenden. Es ist veraltet. und überprüfe deine db manuell nach dem Wert 'xxx' wo' itinID' '5' ist. –

0

Vielleicht in_array() hat funktioniert. Die Funktion gibt true zurück, wenn das Element gefunden wird, und false andernfalls. Im Code des OP, wenn in_array() den Wert false zurückgibt, schlägt die if-Bedingung fehl, was darauf hinweist, dass die Suchzeichenfolge nicht im Array ist. Aber wenn Sie wissen, dass es da sein sollte, dann könnte es an einem anderen Punkt im Code zu Fehlern kommen.

Nebenbei bemerkt, während mysql veraltet ist und alle PHP-Entwickler zu mysqli wechseln sollten, haben manche Leute diesen Luxus nicht und müssen mit dem arbeiten, was ihr Arbeitsplatz diktiert. Das Problem hier ist nicht mysql, sondern die Notwendigkeit, die Empfehlungen des Handbuchs zu grundlegenden Tests zu beachten. Im Folgenden finden Sie Code, der in erster Linie aus dem Manual ableitet (here sehen):

<?php 
error_reporting(E_ALL); 

$result = null; 
$res = null; 

$link = mysql_connect('localhost', 'root', '') 
    or die('Could not connect: ' . mysql_error()); 

mysql_select_db('exp') or exit('Could not select database'); 

$query = "SELECT * FROM countries WHERE id=0"; 

$result = mysql_query($query) or exit('Query failed: ' . mysql_error()); 
$line = mysql_fetch_array($result, MYSQL_ASSOC); 
if (in_array("US", $line)) { 
      echo "in array\n"; 
} 

var_dump($line); 

// Free resultset 
mysql_free_result($result); 

Dieser Code-Fehler, wenn ich es laufen, weil meine Länder Tabelle nicht eine ID von Null enthalten. Folglich enthält das $ -Ergebnis kein Datenfeld - sein Wert ist false. Also, in_array() gibt false zurück. Wenn ich die Abfrage korrigiere, läuft der Code einwandfrei.

Hinweis: Wenn error_reporting() aktiviert ist, kann dies sehr hilfreich sein, wenn Sie versuchen, Code zu debuggen.

Verwandte Themen