2016-03-24 10 views
0

Hier ist meine Frage:mysqli_num_rows gibt 1 zurück, auch zurückgegeben, wenn beitreten Ergebnis leer

$query = 'SELECT b.author as author, b.review as review FROM location_final_similar a LEFT JOIN location_reviews b ON (a.uuid = b.uuid AND a.originalLocationID = b.originalLocationID) WHERE a.finalLocationID = "'.$locationID.'"'; 

Wie Sie oben sehen können, meine einzige Sorge ist Autor und Kritik zu bekommen (die aus der Tabelle location_reviews abgerufen wird).

Wenn ich mit $ locationID getestet habe, die Daten innerhalb von location_reviews enthält, würde mysqli_num_rows die richtige Anzahl zurückgeben.

Aber wenn ich mit $ locationID getestet habe, die keine Daten innerhalb von location_reviews hat, würde mysqli_num_rows immer noch 1 zurückgeben, aber mit dem Autor & review null. Wie kann ich das vermeiden? Ich brauche mysqli_num_rows, um 0 zurückzugeben, wenn es keine Überprüfung für die gegebene ID gibt.

Antwort

1

Sie müssen INNER JOIN (oder vielleicht RIGHT JOIN), z.

SELECT b.author as author, b.review as review FROM location_final_similar a INNER JOIN location_reviews b ON (a.uuid = b.uuid AND a.originalLocationID = b.originalLocationID) WHERE a.finalLocationID = 1 

siehe Difference between INNER and OUTER joins für eine gute Erklärung.

+0

Gott, wie könnte ich das vermissen .... danke trotzdem! – imin

Verwandte Themen