2016-08-09 6 views
1

Ich habe eine Zeile Code in meinem PHP erwartet, der liest:Warum ist mein PHP Mysqli Code ein MySQLi_Result Parameter

$sel_venue = "SELECT 'char_type' FROM 'character_type_allowed' WHERE  status='Open'"; 
$run_venue = mysqli_query($con,$sel_venue); 
while ($row = mysqli_fetch_array($run_venue)) 

    if ($row['char_type'] == 'Mortal') 
     { print ("<li><a href='http://houston-by-night.com/sheets/create/mortal.php'>Create Mortal</a></li>"); } 

Die Verbindung mit diesem tut nichts verbunden. Null Interaktion jenseits des Handelns, wie sie sich ausdehnen möchte. Mein Fehlerprotokoll erzeugt dies: Warum verlangt es das?

[08-Aug-2016 23:28:41 America/New_York] PHP Warnung: mysqli_fetch_array() erwartet Parameter 1 mysqli_result, boolean in/home/houchat/public_html/incl/creation.php in Zeile 8 gegeben

Antwort

1

Sie können 'als Ticks für Feld-/Tabellennamen nicht verwenden.

Ihre Anfrage erzeugt einen Fehler. Sie können den Fehler mit mysqli_error ($ con) sehen.

Bitte beachten Sie den korrigierten Code unter

$sel_venue = "SELECT `char_type` FROM `character_type_allowed` WHERE  status='Open'"; 
$run_venue = mysqli_query($con,$sel_venue) or die(mysqli_error($con)); 
while ($row = mysqli_fetch_array($run_venue)) { 

    if ($row['char_type'] === 'Mortal') { 
     print ("<li><a href='http://houston-by-night.com/sheets/create/mortal.php'>Create Mortal</a></li>"); 
    } 

} 
+0

Wrapped, die es total getan hat :) Danke – OnceorTwice

0

Ihre Anfrage fehlgeschlagen ist, so ist $run_venue die boolean false statt, was Sie erwarten. Sie sollten auf Fehler prüfen, bevor Sie Abfrageergebnis verwenden. Tun Sie dies:

$run_venue = mysqli_query(...); 

if(!$run_venue) die(mysqli_error($con)); 
... //<- we get here if the query succeeded 

Sie werden den Fehler sehen. Das Problem ist, dass Ihre SQL-Anweisung den Tabellennamen zwischen einfachen Anführungszeichen 'character_type_allowed' statt Backticks (Backtick ist über der Tabulatortaste auf meiner Tastatur)

Verwandte Themen