Macht nichts - wenn Du die Tabellen richtig verknüpfst. Hast Du Dir den verlinkten Artikel zum Thema JOINs durchgelesen?
Ja das habe ich gestern schon, habs auch eigentlich verstanden, mein Problem ist eher mit der Ergebnismenge umzugehen.
Das geht, ist aber ziemlicher Mist. Für Abfragen ist das DBMS da, nicht irgendwelche Programmiersprachen ... :-)
ok
Es hat in der Tat hauptsächlich Performance-Vorteile. Und es geht auch mit Subqueries, wenn Dein DBMS das unterstützt. Da Du verschwiegen hast, welches Du verwendest, müsstest Du das also herausfinden.
Performance ist nicht so wichtig, läuft alles abteilungsintern auf einem XAMPP-Apache. Aber ich möchts ja gerne richtig machen.
Das sieht doch prinzipiell gar nicht so schlecht aus. Allerdings solltest Du Dir wirklich den verlinkten Artikel zu JOINs zu Gemüte führen. Insbesondere würde ich die Tabelle "users" auch mittels einem LEFT (OUTER) JOIN anknüpfen, da es schließlich sein kann, dass (noch) keine Benutzer zugeordnet wurden.
Ja stimmt, das hatte ich auch gemacht.
Eine Abfrage liefert kein Array zurück, sondern eine Ergebnismenge. Was dann die verwendete Programmiersprache daraus macht, ist der Sprache bzw. dem Programmierer überlassen. Was bedeutet "du glaubst"? Hast Du Dir einfach mal mittels print_r() ausgeben lassen, was das Ergebnis war?
Ja, das habe ich. Und das Array hatte ich selber aus der Ergebnismenge gebildet. So:
while ($row = mysql_fetch_assoc($sql))
{
$alles[] = $row;
}
'Ich glaube', weil ich den Code nicht mehr habe. Aber print_r hat mir auf jeden Fall ein vernünftiges Ergebnis geliefert, bin dann aber nicht weiter gekommen mit dem sortieren.
Für das Sortieren ist das DBMS zuständig. Die Programmiersprache sollte dann (eigentlich) nur noch Zeile für Zeile untereinander schreiben.
Ja, das seh ich ja auch so. Aber das Prinzip wie ich in der ersten schleife die Projekte abarbeite und dann für jedes Projekt die User mittels einer weiteren Schleife will mir nicht in den Schädel.
Mit Verlaub, das ist wirklich Blödsinn. Erstens kann ein DBMS Dir viel komfortabler und schneller die gewünschten Informationen liefern und zweitens ist eine einzige Schleife für das Durchlaufen und Ausgeben der Ergebnismenge in JEDER Programmiersprache schneller als mehrere Abfragen, die jeweils nur einen einzelnen Datensatz holen.
Bisher bin ich soweit:
$query = "SELECT projekt, UserName
FROM
projekte
LEFT JOIN
dispo_tec
ON
projekte.projekt = dispo_tec.pr_id
LEFT JOIN
users
ON
dispo_tec.user_id = users.UserID
";
$sql = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_assoc($sql))
{
$alles[] = $row;
}
echo '<pre>';
print_r($alles);
echo '</pre>';
Bekomme aber ein leeres Array zurück :-(