einfaches auslesen und sortieren aus der DB?!

eyz

eyz

Aktives Mitglied
Thread Starter
Dabei seit
29.12.2003
Beiträge
180
Reaktionspunkte
0
ho!i

also ich will daten gruppiert und geordnet ausgeben.. diese daten befinden sich in 2tables.. die mit einer key-spalte in einer der beiden tables miteinander verbunden sind

meine tables:
A[ID,NAME]
B[ID,AID,NAME]

so will ich die ausgabe haben:
A.NAME(id=1)
B.NAME(id=1,aid=1)
B.NAME(id=2,aid=1)
B.NAME(id=x,aid=1)
A.NAME(id=2)
B.NAME(id=3,aid=2)
B.NAME(id=4,aid=2)
B.NAME(id=x,aid=2)
A.NAME(id=3)
A.NAME(id=4)


mein lösungsansatz:
PHP:
<?php
	$sql="SELECT A.ID AS AID, A.NAME AS ANAME, B.NAME AS BNAME, B.ID AS BID 
		FROM A, B 
		WHERE B.AID=A.ID 
		ORDER BY A.ID"
	while($row=mysql_fetch_array($sql)){
		$aid = ($row["AID"]);
		if($aid!=$lastaid){
			if($aid > 1) echo("</table></div>");
			echo("<div><table>");
			$aname = ($row["ANAME"]);
			echo("<tr><td>$aname</td></tr>".
		}
		$bid = ($row["BID"]);
		$bname = ($row["BNAME"]);
		if(!$bid){
			echo("<tr><td>leer</td></tr>");
		}else{
			echo("<tr><td>$bname</td></tr>");
		}
		$lastaid = $aid;
	}
?>
mein problem:
sobald ich in table A einen neue "zeile" einfüge.. wird diese nicht ausgegeben, da ja keine zeile in B mit der richtigen AID vorhanden ist __also das unterstrichene in meinem ausgabebeispiel wird NICHT ausgegeben... :/

jetzt sitz ich am schlauch! :) .. plz help
 
Mit einem Left-Join auf A sollten die unterstrichenen Zeilen auch auftauchen.

SELECT A.ID, A.Name, B.Name, b.id
FROM A
LEFT JOIN B
ON A.id=b.aid

kanns gerade zwar nicht testen, aber müsste eigentlich so gehen :)
 
hmmmmm.. ich habs nochmal mit dem leftjoin probiert

leider funktioniert das nicht :/

er gibt mir dann aus:
.. ich mach einfach mal > link <

cat ist in dem fall A und die foren sind B :)

also eigentlich hätte ich schon 5categories, wobei 4 von ihnen foren behinhalten(mit f.CID=c.ID also)

die 5. categorie zeigt er mir gar nicht an :/ ..mit meiner vorherigen lösung

edit//////
arrrrrrrr es geht!! *freu*.. so wies aussieht muss ich mir die JOINS noch genauer ansehehn!

danke vielmals!
 
Zuletzt bearbeitet von einem Moderator:
puh, also wie du das in einem schritt rausbekommst bin ich gerade zu faul zu überlegen, aber wie wäre es mit einem zwischenschritt?

du könntest die "vergessenen" zeilen ja per Hand raussuchen (das sind ja die As, zu denen keine B existiert) und die dann noch dazupacken.
 
Zurück
Oben Unten