SELECT-Befehl
CC
- datenbank
0 rene0 Vedat Yetkin0 CC
0 CC
Hi,
nach der Hilfe aus dem Tutorial habe ich meine Datenbanken umgestellt.
lieferservice bezirke liste
------------- ----------- -----------
shopID ID shop
name stadtteil bezirk
adresse stadt rang
...
liefergebiete <--- Soll das noch rein ?
OK, jetzt hab ich die n:m Beziehung, und ich hab's auch verstanden. Aber auf der zweiten Seite (list == all) sollen
alle Shops aufgeführt werden, aber als erstes wieder die mit rang 1-3. 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
stadtteilen zu verknüpfen. Das macht beim Eingeben doch viel viel viel mehr Arbeit als die Stadtteile unter liefergebiete
aufzulisten und dann mit LIKE %stadtteil% danach zu suchen.
Aber kann mann den SELECT-Befehl so gestalten, das er erst die drei mit dem rang 1-3 ausliest und dann alle anderen ?
In Tutorials hab ich darüber nix gefunden.
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
...
}
Danke im voraus
CC
mahlzeit
also mir wird schwarz vor augen, wenn ich das lese!
*rene nix versteht was Du wollen*
zumal deine tabellen schlecht lesbar sind.
prob mal mit tbl_liste oder tbl_bezirke.
auch feldnamen mit aus dem namen hervorgehenden tbl-bezeichnung sind nicht schlecht, bleistift:
liste_shopid, liste_bezirkid.....
*vielleicht dann alles versteht*
msg
rene
Hi,
nach der Hilfe aus dem Tutorial habe ich meine Datenbanken umgestellt.
lieferservice bezirke liste
shopID ID shop
name stadtteil bezirk
adresse stadt rang
...
liefergebiete <--- Soll das noch rein ?
OK, jetzt hab ich die n:m Beziehung, und ich hab's auch verstanden. Aber auf der zweiten Seite (list == all) sollen
alle Shops aufgeführt werden, aber als erstes wieder die mit rang 1-3. 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
stadtteilen zu verknüpfen. Das macht beim Eingeben doch viel viel viel mehr Arbeit als die Stadtteile unter liefergebiete
aufzulisten und dann mit LIKE %stadtteil% danach zu suchen.
Aber kann mann den SELECT-Befehl so gestalten, das er erst die drei mit dem rang 1-3 ausliest und dann alle anderen ?
In Tutorials hab ich darüber nix gefunden.
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
...
}
Danke im voraus
CC
Hallo CC,
In Tutorials hab ich darüber nix gefunden.
Deine Frage ist ziemlich Datenbankdesignspezifisch ... das bringt Dir kein MySQL-Tutorial bei.
Zu der Sache mit den Liefergebieten. Die Frage, ob Du eine m:n Beziehung brauchst, hängt entschieden davon ab, wofür "rang" steht.
Was stellt dieser dar?
Die Essensqualität? Oder wie bevorzugt welche Liefergebiete beliefert werden?
Also, im letzteren Fall ist eine n:m Beziehung sinnvoll. Aber sonst nicht.
Grüße, Vedat
Hallo CC,
In Tutorials hab ich darüber nix gefunden.
Deine Frage ist ziemlich Datenbankdesignspezifisch ... das bringt Dir kein MySQL-Tutorial bei.
Zu der Sache mit den Liefergebieten. Die Frage, ob Du eine m:n Beziehung brauchst, hängt entschieden davon ab, wofür "rang" steht.
Was stellt dieser dar?
Die Essensqualität? Oder wie bevorzugt welche Liefergebiete beliefert werden?
Also, im letzteren Fall ist eine n:m Beziehung sinnvoll. Aber sonst nicht.
Grüße, Vedat
Hallo
Nein, auf der ersten Seite werden nur 3 shops aufgelistet. erst auf der zweiten werden alle shops des liefergebietes aufgelistet.
hierbei steht rang für den Platz 1,2,3 der aufgelisteten shops. Soweit hat mir schon jemand geholfen.
Hab ich nur vergessen zu schreiben.
Hi,
nach der Hilfe aus dem Tutorial habe ich meine Datenbanken umgestellt.
lieferservice bezirke liste
shopID ID shop
name stadtteil bezirk
adresse stadt rang
...
liefergebiete <--- Soll das noch rein ?
Ok, so sehen die Tbellen aus. Rang = Platz in der Liste des Liefergebietes.
Aber verdammt viele Gebiete und verdammt viele shops, daher die Frage ob es nicht mit
LIKE %stadtteil% geht. Damit man bei der Eingabe Zeit spart.
Grüsse
CC