Das Problem, mit dem ich konfrontiert bin, ist, mysql_num_rows gibt mir eine Ausgabe von 1 alle durch den Code, aber wenn ich es in einer if-Anweisung wil 0, gibt es wahr und tut den Code. so $ Lizenz gibt zurück ........ anstelle von seinem tatsächlichen Wert.mysql_num_rows in einer if-Anweisung
Ich habe versucht, das Problem mit diesen selbst zu debuggen.
- Versucht print_r, um zu sehen, ob Daten vorhanden sind. - Ja.
- Versucht, die $ Lizenz im ersten Teil zurückzugeben - gibt den richtigen Wert zurück.
- Versucht, den Wert von mysql_num_rows Überprüfung - liefert 1.
- es mit 0 in ein passender if-Anweisung - true zurückgibt, wenn es falsch sein sollte, da der Wert 1.
Jede Hilfe zu diesem Thema ist?
$check = mysql_query("SELECT * FROM licenses WHERE email='$email'") or die(mysql_error
());
if (mysql_num_rows($check) > 0)
{
while ($data = mysql_fetch_array($check))
{
print_r($data); // for test
$name = $data['name'];
$license = $data['pid'];
echo $license; // test print 1
$comments = $data['comments'];
}
if ($license == "Sgsmorgan")
$license = "EWP Discounted Basic (Simpleleveraging)";
}
$count = mysql_num_rows($check); // for test
echo $count; // returns 1.
if (mysql_num_rows($check) == 0)
$name = "";
$license = "...........";
echo $license;// test print 2
$comments = "Email doesnt exist in the database";
Die MySQL-Erweiterung ist veraltet und auf dem Weg nach deprecation. Neuer Code sollte mysqli oder PDO verwenden, die beide wichtige Vorteile haben, wie etwa die Unterstützung vorbereiteter Anweisungen. Apropos: Der Beispielcode ist potenziell anfällig für [SQL-Injektion] (http://unixwiz.net/techtips/sql-injection.html). Parametriere die Anweisung, um die Widerstandsfähigkeit zu schließen. – outis
Verwenden Sie nicht ['SELECT *'] (http://stackoverflow.com/questions/321299/), es sei denn, Sie schreiben ein DB-Administrationsprogramm; Wählen Sie nur die Spalten aus, die Sie benötigen. – outis
Aus Gründen der Lesbarkeit wählen Sie bitte einen [Einzugsstil] (http://en.wikipedia.org/wiki/Indent_style) aus und wenden ihn an. – outis