ist die Abfrage aus der dann weiter unten im HTML-Tag mit einer
while ($zeige=mysql_fetch_array($result)) { ?>
echo $zeige[„name“]; } ?>
alle Name der Drinks ausgegeben werden sollen. Leider bekomme ich 1. nur die Namen von der Tabelle ‚longdrinks‘, 2. die Namen sooft wie Einträge in der DB sind also jeden Namen um die 30 mal hintereinander.
Hallo,
Nun es sieht so aus, als dass Du nicht sehr viel Ahnung von DBs hast.
Zuerst mal ein paar Annahmen meinerseits.
Es sieht so aus, als möchtest Du Drinks abspeichern. Diese sind in drei Gruppen unterteilt. alkfrei, longdrinks, cocktails. Du hast daraus drei Tabellen gemacht. Das ist aus der relationalen Sicht falsch.
Eigentlich sollte das doch so aussehen:
Es gibt eine Tabelle drinks und eine Tabelle drink_typ
die tabelle drink_typ enthält als Werte:
id typ
1 alkfrei
2 longdrinks
3 cocktails
die tabelle drinks enthält dann eine id, den namen, die zutaten und den drink_typ (Fremdschlüssel)
id name zutaten drink_typ
1 cuba libre … 2
Damit du nun alle Namen holen kannst, musst du nur
SELECT name from drink;
Dann hast Du alle was Du brauchst.
Ich empfehle Dir ein Buch über Datenbanken und Datenmodelierung zu kaufen. Denn das Datenmodel ist entscheidend für die Performance und Wartbarkeit deiner Applikation.
Es sieht so aus, als möchtest Du Drinks abspeichern. Diese
sind in drei Gruppen unterteilt. alkfrei, longdrinks,
cocktails. Du hast daraus drei Tabellen gemacht. Das ist aus
der relationalen Sicht falsch.
Eigentlich sollte das doch so aussehen:
Es gibt eine Tabelle drinks und eine Tabelle drink_typ
die tabelle drink_typ enthält als Werte:
id typ
1 alkfrei
2 longdrinks
3 cocktails
die tabelle drinks enthält dann eine id, den namen, die
zutaten und den drink_typ (Fremdschlüssel)
id name zutaten drink_typ
1 cuba libre … 2
Damit du nun alle Namen holen kannst, musst du nur
SELECT name from drink;
Dann hast Du alle was Du brauchst.
Vorausgesetzt, er hat Einfluss auf das DB-Design
Ansonsten würde eine UNION das gewünschte Ergebnis liefern.
Mit MySQL funktioniert das aber erst ab Version 4.
SQL Abfrage ?!?! HILFE!!! die 2.
Hmm… irgendwie kam mein Problem nicht wirklich rüber. Hier nochmal die Fakten. Also ich habe eine DB, in dieser DB sind 3 Tabellen. Diese Tabellen stehen in keinerlei Verbindung. Nun möchte ich mit einer SELECT Anweisung alle Namen aus den 3 Tabellen rauslesen lassen.
Also nochmal:
Lösung 1: Wenn Du kannst ändere das Datenmodell.
wenn nicht
Lösung 2: dann sind drei Selects, weil, wie du schon sagst, die Tabellen in keiner Beziehung zu einander stehen.
wenn der das feld ‚name‘ in allen 3 tables vorkommt, mußt ihnen im sql-statement einen alias geben,
z. B.
$sql = "SELECT alkfrei.name as alkfreiname, longdrinks.name as longdrinkname…
ansonsten weiß die die routine nicht,
welches feld von welcher table gemeint ist und gibt dir eben nur die erste aus.