2016-04-14 19 views
-4

Ich kann es nicht zur Arbeit bekommen, alles was ich bekomme ist das: sonst "Funker ikke".PHP und SQL wird nicht funktionieren?

+3

Verwendung 'if ($ sql) {while (row1 $ = mysqli_fetch_array ($ sql, MYSQL_NUM)) {echo row1 $ [ '0'];} else {echo "Funker ikke";}' – Saty

+0

wenn ($ sql) -> ist wahr. Sie haben die Fehlerbedingungen für "true" überprüft. Bitte überprüfen Sie "Rückgabewerte" von "mysqli_query" http://php.net/manual/en/mysqli.query.php – Vuong

+0

Sie können versuchen, die mysql_error, http://php.net/manual/en/function echo .mysql-error.php auch um sicherzustellen, dass Ihre Abfrage erfolgreich ist, können Sie print_r verwenden, um zu überprüfen, ob Sie eine Rückgabedaten für Ihre Abfrage haben. –

Antwort

1

Ihr Code hat zwei Fehler dort.
Zuerst sollte es wahr sein, dass der Zustand nur in die Display-Schleife gelangen kann. Aber du stellst die Bedingung als !$sql bedeutet falsch nur in die Schleife kommen kann. Sie sollten also !$sql zu $sql ändern.

Außerdem, nach der While Schleife sollte nicht direkt das Semikolon setzen.

Sie versuchen

$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker"); 

if ($sql) { 
    while ($row1 = mysqli_fetch_array($sql, MYSQL_NUM)) 
    { 
     echo $row1[0]; 
    } 
} 
else { 
    echo "Funker ikke"; 
} 
4

1) Mit falsch, wenn die Bedingung den folgenden Code sehen. Wenn die Abfrage den Wert "true" zurückgibt, fügen Sie sie in if-Bedingung ein

2) Falsche Echodaten mit MYSQL_NUM. Es zurückkehren numerisches Array

$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");  

if ($sql) {// if true 
    while ($row1 = mysqli_fetch_array($sql, MYSQL_NUM)) { 
     echo $row1['0'];//numeric array 
    } 
} else { 
    echo "Funker ikke"; 
}  

AKTUALISIERT nach unten kommentiert

$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker"); 
if ($sql) { 
    $row1 = mysqli_fetch_array($sql, MYSQL_NUM); 
    echo $row1['0']; //numeric array 
} else { 
    echo "Funker ikke"; 
} 

lesen http://php.net/manual/en/mysqli-result.fetch-array.php

+1

Sie sollten wirklich testen, wenn ($ sql!== FALSE) {'wenn die Abfrage gut ist $ sql ist nicht' TRUE' Es ist tatsächlich ein 'mysqli_result' Objekt – RiggsFolly

+1

@RiggsFolly dann, wenn die Bedingung auch' wahr 'zurückgibt, auch wenn es ein Objekt ist –

+1

Auch als eine 'COUNT (ID)' kann nur eine Zeile zurückgeben, die while-Schleife ist unnötig – RiggsFolly

1

Ihr Code korrekt ist, außer der nicht vor SQL melden Sie sich an, wenn condition.According zu Ihnen, wenn Ihre SQL-Abfrage ist falsch, dann wird die $ row1 angezeigt, sonst ist sie korrekt, dann wird "funker ikke" gedruckt. Genau das Gegenteil. Dieser Code funktioniert:

$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker");  

if ($sql) { 
    // as the query can only return 1 row the while look is unnecessary 
    //while ($row1 = mysqli_fetch_array($sql, MYSQL_NUM)) { 

    $row = mysqli_fetch_array($sql, MYSQL_NUM) 
    echo $row[0]; 

} else { 
    echo "Funker ikke"; 
} 
+2

Haben Sie seine Arbeit mit echo $ row1 überprüft? oder nicht? Ich denke, dass es sich um einen numerischen Wert handelt. Bitte korrigiere es. – RJParikh

+0

echo $ row1; ??? – devpro

+1

Problem behoben, hoffe, es macht Ihnen nichts aus – RiggsFolly

1

Es gibt ein paar Fehler im Code

Zuerst Sie kann nur eine Zeile zurückgeben ein einzelnes Ergebnis, SELECT COUNT() nicht über eine while-Schleife müssen verarbeiten.

Zweite als mysqli_query() für eine SELECT-Abfrage wird entweder FALSE oder mysqli_result Objekt zurückgegeben, es wäre besser, Ihre if-Bedingung wie unten umzudrehen und speziell für FALSE anstelle von TRUE zu testen.

Drittens ein mysqli_fetch_array($sql, MYSQL_NUM) ein Array zurückgibt, müssen Sie Array-Notation verwenden, um die nur zurückgegebene Wert dh $row[0]

auch zu erhalten, wenn jede mysqli_ Funktion fehlschlägt es einige Fehlerinformationen Blätter, die sehr nützlich ist, zeigen so, dass Informationen oder senden Sie es an eine Anwendungsfehlerdatei, wenn Sie nicht möchten, dass Benutzer sie sehen, wenn der Code aktiv wird.

$sql = mysqli_query($db, "SELECT COUNT(ID) from bruker"); 

if ($sql === FALSE) { 
    echo "Funker ikke"; 
    echo mysqli_error($db); 
    exit; 
} else { 
    $row = mysqli_fetch_array($sql, MYSQL_NUM); 
    echo $row[0]; 
} 
Verwandte Themen