2017-08-30 7 views
-1

Ich arbeite an einem PHP-Lotterieskript, aber ich habe ein paar Probleme? wenn ich das tue var_dump (wählen $) gibt "bool (false)" und var_dump ($ wählen [ 'username']) gibt "NULL"var_dump() gibt mir NULL UND bool (falsch)

Jeder irgendwelche Ideen hat? Dies wird als "$ wählen":

$choose = mysql_query("SELECT username FROM `lotto` WHERE winner = '1'"); 

mein Tabellenname ist Lotto, Benutzername und Gewinner existieren beide als Spalten in "Lotto"

dies ist der vollständige Code-Schnipsel des Codes:

$choose = mysql_query("SELECT username FROM `lotto` WHERE winner = '1'"); 
 
$chosen = mysql_fetch_assoc($choose); 
 
    
 
    if ($choose >= $choose) 
 
\t { 
 
\t 
 
\t mysql_query("INSERT INTO lotto_winners (username, time, winning_number) VALUES ('".$choose['username']."', '1', '".$winner."')"); 
 
} 
 
else 
 
{ 
 
\t echo 'FAILED: No Winner to Choose From'; 
 
} 
 
    
 

 

 
echo 
 
'<div>'.$winner.'</div>'; 
 
echo 
 
'<div>'.$choose.'</div>'; 
 

 
    
 
var_dump($chosen); 
 
var_dump($chosen['username']);

und bevor jemand etwas sagt: ich weiß schon, dass mysql_ * ist veraltet. also bitte, du musst es mir nicht sagen.

+3

Sie erkennen, dass 'if ($ select> = $ select)' immer wahr sein wird? –

Antwort

0

von PHP Doc

Converting

boolean ein Wert, um explizit zu konvertieren zu boolean, verwenden Sie die (bool) oder (boolean) Würfe. In den meisten Fällen ist die Umwandlung jedoch nicht erforderlich, da ein Wert automatisch konvertiert wird, wenn eine Struktur mit Operator, Funktion oder Steuerelement ein boolesches Argument erfordert.

Siehe auch Typ Jonglieren.

Bei der Umwandlung nach boolean werden die folgenden Werte in Betracht gezogen FALSE:

  • die Boolesche FALSE selbst
  • die ganze Zahl 0 (Null)
  • der Schwimmer 0.0 (Null)
  • die leere Zeichenkette, und die Zeichenfolge "0"
  • ein Array mit Null-Elementen (Ihr Fall)
  • die speziellen Typ NULL (einschließlich nicht definierter Variablen)
  • SimpleXML Objekte erstellt von leeren

http://php.net/manual/en/language.types.boolean.php

dann ist die $ wählen null, weil keine Zeilen r eturn wenn der Gewinner Spaltendatentyp Zahl versuchen, mit

$choose "SELECT username FROM `lotto` WHERE winner = 1" 

oder wenn Sie eine ENUM verwenden, dann versuchen Filter für die 1 verknüpften Werte

$choose "SELECT username FROM `lotto` WHERE winner = 'MY_VALUE_FOR_1'" 
+0

Also, wenn das der Fall ist, wie würde das funktionieren? $ getRewards = mysql_query ("SELECT Kredite von Benutzern WHERE ID = '". $ _ SESSION [' Benutzer '] [' ID ']. "'"); \t \t \t \t \t \t \t \t \t \t \t while ($ Belohnungen = mysql_fetch_assoc ($ getRewards)) { if ($ Belohnungen [ 'Credits']> 19999) \t \t \t \t \t \t \t \t \t \t \t und das funktioniert 100% gut, ich sehe nicht wirklich die d ifference? –

+0

Ihre Frage ist über $ wählen. $ choose ist null das ist der Grund für dein var_dump Resultat .. und meine Antwort ist über dich Quest. Wenn $ choice ist null .. das bedeutet, dass Sie abfragen nicht funktionieren, aber das ist eine andere Frage .. könnte Sie irgendwo einen Fehler haben .. tun die Tatsache, dass dies der Fall ist, dass Sie nicht auf die ursprüngliche Frage – scaisEdge

+0

Mein Kommentar war, weil ich $ Belohnungen gesetzt habe, genau wie ich es mit dem $ wählen gemacht habe. Ich verstehe nicht, warum es nicht das gleiche funktioniert .. –

-1

Ihre Anfrage ungültig ist, das ist, warum Sie erhalten bool (false)

Änderung

"SELECT username FROM `lotto` WHERE winner = '1'" 

zu

"SELECT username FROM lotto WHERE winner = '1'" 
+0

die hinteren Ticks waren nur ein Versuch für eine Reparatur. es geht auch nicht mit ihnen weg. –

Verwandte Themen