Zur Navigation

Doppelte Datenausgabe nach JOIN

1 AndiN

Hallo Jörg,
ich habe folgende DB-Abfrage:

<?php
$array_attribute_ID[] = "";
$array_attribute_Icon[] = "";
$array_attribute_Top[] = "";
$array_attribute_Typ[] = "";
$array_attribute_Lang[] = "";

$sql = mysql_connect($host_porta,$user_porta,$pword_porta);
mysql_select_db($db_porta,$sql);
$query = "SELECT A.ID FROM attribute AS A LEFT JOIN attribute_lang AS B ON A.ID = B.ID ORDER BY B.Name";
$connect = @mysql_query($query) or die(mysql_error());
while($val = mysql_fetch_object($connect))
{
	$array_attribute_ID[] = $val -> ID;
}
print_r($array_attribute_ID);
?>

Die Ausgabe wirft 10 Einträge raus anstatt 5.
Das Array sieht so aus als würde er zweimal die Tabelle hintereinander ausgeben.

Also so:

Array ([0] => 188 [1] => 183 [2] => 50 [3] => 155 [4] => 156)
Array ([0] => 188 [1] => 183 [2] => 50 [3] => 155 [4] => 156 [5] => 188 [6] => 183 [7] => 50 [8] => 155 [9] => 156)

Wenn ich ein "break;" an das Ende der while-Schleife setze macht er Folgendes:

Array ([0] => 188 [1] => 183)
Array ([0] => 188 [1] => 183 [2] => 188 [3] => 183) 

08.03.2013 12:08

2 Rudy

Vielleicht solltest Du besser einen INNER JOIN machen anstatt eines LEFT JOINS.

08.03.2013 12:13

3 AndiN

Schon versucht. Ändert leider nichts.

08.03.2013 12:14

4 Rudy

Wenn sich die Daten beim LEFT JOIN verdoppeln weist das auf eine fehlerhaften Abgleich im ON A.ID = B.ID hin, aber wenn der INNER JOIN alle Daten gleich ausgibt, ist es vielleicht ein Datenfehler? Funktioniert denn die Abfrage im PHPMyAdmin wie erwartet?

08.03.2013 12:22

5 AndiN

Im PHPMyAdmin ist alles prima, ja.

08.03.2013 12:23

6 Jörg Kruse

Läuft das ganze vielleicht schon in einer (äußeren) Schleife?

Setz zum Test noch ein exit rein:

print_r($array_attribute_ID);
exit;

08.03.2013 12:23

1 Forenmitglied fand diesen Beitrag gut

7 AndiN

Ah... jetzt werden die richtige Anzahl von Daten ausgegeben. Allerdings ist jetzt der Rest der Seite weg. Okay, dann schaue ich mal, dass ich die Abfrage wo anders einbinde.

EDIT: Okay, man sollte vielleicht eine DB-Abfrage nicht zweimal in ein Script reinladen. Dann geht es auch. Ich gehe mal in die Ecke und schäme mich!

08.03.2013 12:26 | geändert: 08.03.2013 12:30

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]