Einzelnen Beitrag anzeigen
  #1  
Alt 15.09.2010, 13:54:16
mauritius mauritius ist offline
Anfänger
 
Registriert seit: Sep 2010
Alter: 34
Beiträge: 12
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!
Mit Zitat antworten