kerki: PHP & MySQL (SELECT)

Beitrag lesen

Hallo !

lieferservice

shopID
name
adresse
...
liefergebiete  <--- Alle Stadtteile, die der shop beliefert

bezirke

ID
stadtteil  <--- Das ist immer genau ein Stadtteil
stadt

liste

shop
bezirk
rang

Das sieht schon viel besser aus ! :-)

Jetzt gibt es aber sauviele shops und stadtteile und gibt's da keine einfachere Lösung das so anzuordnen als alle shops über die TABELLE liste mit den entsprechenden bezirken zu verknüpfen. Das macht beim Eingeben doch viel viel viel mehr Arbeit als die bezirke unter liefergebiete einzutragen.

Die Eingabe hat zunächst nichts mit der Speicherung der Daten zu tun.
Sicherlich kannst du dir eine Eingabemaske basteln, in die du alle Lieferbezirke z.B. durch Kommata getrennt hintereinander eingibst.
Im Script, das die Daten dann abspeichert, zerlegst du dieses Eingabefeld und speicherst die einzelnen Werte in der Tabelle Liste.

Oder du verwendest z.B. Access als Frontend für deine MySQL-DB, dann kannst du eine Forumlar mit Unterformular anlegen. Das ist einfacher als man denken sollte.

Mein Script:

/* -------------------- Erste 3 Auflisten --------------- */

if ($list == 3)
{
$sql_query = "SELECT l.shopID, l.name, l.adresse, l.link, l.zeit, l.stadt, l.liefergebiete
FROM lieferservice l, bezirke b, liste r WHERE l.liefergebiete LIKE '%$mode%' AND b.stadtteil='$mode' AND l.stadt='B'
AND
l.shopID=r.shop AND b.ID=r.bezirk ORDER BY r.rang";
$result = mysql_db_query($db, $sql_query);
$rows   = mysql_num_rows($result);

...
Ausgabe
...

}
/* -------------------- Alle Auflisten --------------- */ Funktioniert net wie ich will

if ($list == alle)
{
$sql_query = "SELECT l.shopID, l.name, l.adresse, l.link, l.zeit, l.stadt, l.liefergebiete
FROM lieferservice l, bezirke b, liste r WHERE l.liefergebiete LIKE '%$mode%'";
$result = mysql_db_query($db, $sql_query);
$rows   = mysql_num_rows($result);

...
Ausgabe
...

Abgesehen davon, dass das Feld liefergebiete der Tabelle lieferservice - wie oben gesagt - überflüssig (weil doppelt gemoppelt) ist, fehlt (auf den ersten Blick) in der 2. Query die Verknüpfung zwischen den Tabellen über die IDs, wodurch du wahrscheinlich _viieeeeel_ mehr Ergebnisse erhalten hast, als du wollest.

Gruß,

kerki