Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
15.05.2006, 21:12
Sir_Prize



folgende situation:
es gibt 2 tabllen. eine namens 'cities' mit den feldern id und name und eine namens 'spots' mit den feldern id, city_id, titel und noch einigen weiteren.
Jetzt möchte ich auf einer seite eine liste aller in der datenbank vorhandenen städte angeben mit einer darunterliegenden liste der spots in der stadt.

folgender code:
PHP-Quellcode:<?php
include("locals.php");
mysql_connect($server,$serverusername,$serverpass);
mysql_select_db($database);

$cityresult mysql_query("SELECT * from cities ORDER BY name")

while(
$cityarray mysql_fetch_array($cityresult))
{
  echo 
"<h2>".$cityarray['name'].":</h2>\n<ul>";
  
$spotresult mysql_query("SELECT id, city_id, titel from spots WHERE city_id=".$cityresult['id']." ORDER BY titel")
  while(
$spotarray mysql_fetch_array($spotresult))
  {
    echo 
"<li><a href="spot.php?id=".$spotresult['id']."">".$spotarray['titel']."</a></li>";
  }
  echo 
"</ul>";
}

mysql_close();
?>
folgendes problem: die anzahl der queries steigt mit der der eiunträge von städten viel zu extrem. wie kann ich denn den querie vor der whileschleife einbauen, aber die spots trotzdem nach den städten ordnen (in alphabetischer reihenfolge, die ja aus den city_id's nicht ersichtlich ist).

--

"Herr Keuner sagte: «Schwierig ist, diejenigen zu belehren, auf die man zornig ist. Es ist aber besonders nötig, denn sie brauchen es besonders.»" - Bertolt Brecht
-
"Hier gibt's was auf die Ohren" - Thewall.de bei last.fm (Was ist last.fm?)

zum Seitenanfang zum Seitenende Profil || Suche
001
15.05.2006, 22:28
default



SELECT s.city_id, s.id, s.titel, c.name
FROM cities c
JOIN spots s ON( c.id = s.city_id )
ORDER BY c.name, s.title

--

Du musst Deine Bandbreite verbreitern, damit du breiter wirst von der Bandbreite her und ein breiteres Publikum ansprechen kannst.

zum Seitenanfang zum Seitenende Profil || Suche
002
16.05.2006, 20:58
Sir_Prize



cool danke

--

"Herr Keuner sagte: «Schwierig ist, diejenigen zu belehren, auf die man zornig ist. Es ist aber besonders nötig, denn sie brauchen es besonders.»" - Bertolt Brecht
-
"Hier gibt's was auf die Ohren" - Thewall.de bei last.fm (Was ist last.fm?)

zum Seitenanfang zum Seitenende Profil || Suche
003
17.05.2006, 01:03
default



funktioniert das echt?

--

Du musst Deine Bandbreite verbreitern, damit du breiter wirst von der Bandbreite her und ein breiteres Publikum ansprechen kannst.

zum Seitenanfang zum Seitenende Profil || Suche
004
17.05.2006, 01:27
Sir_Prize



weiss ich nicht, ich hatte noche keine zeit es auszuprobieren. Aber ich habs mir deinen befehl genauer durchgelesen und versucht nachzuvollziehen und es erscheint mir logisch. ich vestehe nur leider nicht allzuviel von mySQL und beherrsche nur die standart abfragen. ich muss mich auch mal näher mit der materie beschäftigen, hab aber leider nicht zuviel zeit im moment.

--

"Herr Keuner sagte: «Schwierig ist, diejenigen zu belehren, auf die man zornig ist. Es ist aber besonders nötig, denn sie brauchen es besonders.»" - Bertolt Brecht
-
"Hier gibt's was auf die Ohren" - Thewall.de bei last.fm (Was ist last.fm?)

zum Seitenanfang zum Seitenende Profil || Suche
005
17.05.2006, 10:49
hausi



http://sqlzoo.net/ - Sehr zu empfehlen. Ein sehr gut gemachtes, interaktives SQL-Tutorial. Der Lerneffekt scheint auch sehr gross zu sein (habs nie selber durchgemacht, aber einige Kollegen hatten danach fast keine Probleme mehr mit SQL).

--

zum Seitenanfang zum Seitenende Profil || Suche