2012-04-01 18 views
0
table: database1.comment 
id | owner_id | comment  
1 | 1  | some words 
2 | 1  | some words 
3 | 2  | some words 

table: database2.users 
id | display_name 
1 | admin  
2 | guest 

Ich versuche 2 Tabellen-Abfrage zu verbinden, hier ist mein PHP-Code:mysql Join-Abfrage mit PHP

$result = mysql_query("SELECT * FROM database1.comment INNER JOIN database2.users ON database1.comment.owner_id=database2.users.id order by database1.comment.id DESC"); 
while ($row = mysql_fetch_array($result)){ 
    echo '<li>'.$row['display_name'].': '.$row['comment'].'</li>'; 
} 

Ich erhalte eine Fehlermeldung: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given. Wie man einen Arbeitscode erstellt (Optimieren)

+1

Nun, Ihre Abfrage ist fehlgeschlagen. Überprüfen Sie auf Fehler, bevor Sie versuchen, Zeilen abzurufen. 'if (! $ result) echo mysql_error();' –

+0

Sie erhalten einen Fehler. Versuchen Sie, mysql_error() aufzurufen und die Fehlermeldung zu posten. –

+0

Die Syntax sieht gut aus, aber es könnte ein Datenbankbenutzerberechtigungs-Problem über zwei dbs sein. –

Antwort

0

Wenn Ihre Abfrage ungültig ist (oder anderweitig "fehlgeschlagen" ist), gibt mysql_query() "false" (anstelle eines Arrays) zurück.

VORSCHLÄGE:

  1. Cut/SQL-String in MySQL einfügen, sehen, was falsch ist, und es beheben. Und dieser Punkt sollte dein PHP in Ordnung sein.

  2. Überprüfen Sie Ihr Ergebnis (und anmutig alle Fehler/Fehler behandeln) im Code:

Beispiel (Fehler: nein "aus" -Klausel):

$result = mysql_query('SELECT * WHERE 1=1'); 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
}