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
eingebe, gibt er mir "Resource id #38" aus. Kann mir einer sagen, was ich falsch mache?
Danke!