PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Ergebnisse aus MySQL Abfrage, obwohl Abfrage eigentlich leer (http://www.selfphp.de/forum/showthread.php?t=23586)

mauritius 15.09.2010 13:54:16

Ergebnisse aus MySQL Abfrage, obwohl Abfrage eigentlich leer
 
Hi,

stehe gerade vor einem kleinen Rätsel. In meinem Script habe ich eine sehr große SQL-Abfrage drin. Diese funktioniert auch. Diese vergleicht zwei Tabellen und liefert alle Einträge, die in der anderen Datenbank nicht vorkommen. Auf SQL-Ebene funktioniert dies problemlos. Da derzeit kein Eintrag unterschiedlich ist, sagt SQL: MySQL lieferte ein leeres Resultat zurück

Ist auch richtig so, so solls ja auch sein. Nur PHP macht etwas merkwürdiges:
Eigentlich sollte die Abfrage leer sein. Leere Abfrage = leere Ausgabe. Denkste. PHP gibt jedoch weiterhin immer das Selbe aus. Dies ist mein PHP-Befehl mit der SQL-Abfrage:

PHP-Code:

$sql "SELECT kdb.loginid, kdb.enabled, kdb.memoryquestion, kdb.memoryanswer, kdb.firstname, kdb.lastname, "
    
" kdb.title, kdb.middlename, kdb.city, kdb.postalcode, kdb.street, kdb.phonebusinessdirect FROM kdb\n"
    
" WHERE NOT EXISTS (SELECT foedie.loginid, foedie.enabled, foedie.memoryquestion, foedie.memoryanswer,"
    
" foedie.firstname, foedie.lastname, foedie.title, foedie.middlename, foedie.city, foedie.postalcode, foedie.street,"
    
" foedie.phonebusinessdirect FROM foedie\n"
    
" WHERE kdb.loginid = foedie.loginid AND kdb.enabled = foedie.enabled"
    
" AND kdb.memoryquestion = foedie.memoryquestion AND kdb.memoryanswer = foedie.memoryanswer AND kdb.firstname = foedie.firstname "
    
" AND kdb.lastname = foedie.lastname AND kdb.title = foedie.title AND kdb.middlename = foedie.middlename "
    
" AND kdb.city = foedie.city AND kdb.postalcode = foedie.postalcode AND kdb.street = foedie.street "
    
" AND kdb.phonebusinessdirect = foedie.phonebusinessdirect) LIMIT 0, 30 ";
  
$squery mysql_query($sql); 

Weiter unten werden bzw. sollen die Ergebnisse aufgelistet werden, die nicht in der anderen Datenbank vorhanden sind:
PHP-Code:

while($ergebnis mysql_fetch_object($squery))
{
    echo 
$ergebnis->loginid." | ";
    echo 
$ergebnis->firstname." | ";
    echo 
$ergebnis->lastname." | ";    
    echo 
$ergebnis->email."<br>";
    
[...]



Meinem verständnis nach sollte doch in den Variablen kein Wert gespeichert sein, wenn die Abfrage leer ist. Wenn ich
PHP-Code:

echo $squery

eingebe, gibt er mir "Resource id #38" aus. Kann mir einer sagen, was ich falsch mache?

Danke!

vt1816 15.09.2010 15:16:30

AW: Ergebnisse aus MySQL Abfrage, obwohl Abfrage eigentlich leer
 
Zitat:

Zitat von mauritius (Beitrag 138096)
Meinem verständnis nach sollte doch in den Variablen kein Wert gespeichert sein, wenn die Abfrage leer ist. Wenn ich
PHP-Code:

echo $squery

eingebe, gibt er mir "Resource id #38" aus. Kann mir einer sagen, was ich falsch mache?

Danke!

Die Ausgabe/Anzeige ist korrekt.

Viel wichtiger ist doch, was für eine Ausgabe erhältst Du hier:
Zitat:

Zitat von mauritius (Beitrag 138096)
PHP-Code:

while($ergebnis mysql_fetch_object($squery))
{
    echo 
$ergebnis->loginid." | ";
    echo 
$ergebnis->firstname." | ";
    echo 
$ergebnis->lastname." | ";    
    echo 
$ergebnis->email."<br>";
    
[...]




Hier sollte nichts erscheinen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:40:03 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.