Ausgabe aus mySQL nach Anfangsbuchstaben sortiert

TripHop

Grünschnabel
Hallo!

Ich habe mal eine Frage -und zwar habe ich in einer mySQL Tabelle eine Liste mit ca. 5000 Namen und Anschriften.
Diese möchte ich in php-Dateien ausgeben, und zwar so, dass je Anfangsbuchstabe eine Seite ausgegeben wird, also z.B. alle Namen, die mit A beginnen. Soweit alles kein Problem:

PHP:
mysql_query("select name,strasse,ort from adressen where name like 'a%' order by name");

Aber: als weitere "Schwierigkeit" möchte ich nun, dass maximal 100 Namen pro Seite ausgegeben werden und für die restlichen weitere Seiten mit jeweils maximal 100 Namen erstellt werden. (also a1.php, a2.php, a3.php usw.)
Geht sowas? Wie mache ich das? Hat jemand eine Idee?

Viele liebe Grüße und besten Dank,
TripHop
 
Zuletzt bearbeitet:
Hmmm...das hilft glaube ich nicht so viel, weil ich keine ID-Nummern in der Tabelle habe, nur eben NAME, STRASSE, ORT
So ist das ja das "typische Gästebuch"-Blättern.

Bei mir sollte das aber alphabetsich geordnet werden.
Geht das dann überhaupt?
Außerdem sollten in der URL möglichst keine Variablen übergeben werden, sondern einfach .php-Dateien (oder auch HTML) erstellt werden.
Es kommen keine neuen Adressen dazu, insofern ist das eine einmalige Sache mit dem Erstellen.

Gruß TripHop
 
Zuletzt bearbeitet:
Hi!

Du mußt das LIMIT festlegen:

PHP:
mysql_query("select name,strasse,ort from adressen where name like 'a%' order by name LIMIT 0,100");

So liest er die Datensätze von 0 bis 100 ein, beim Seitenwechsel mußt Du dann dieses Limit erhöhen auf 101, also ungefär so:

PHP:
mysql_query("select name,strasse,ort from adressen where name like 'a%' order by name LIMIT 101,200");

Es ist übrigens egal ob es nur 150 Datensätze sind, es gibt keine Fehlermeldung, auch nicht wenn Du mehr angibst als es wirklich gibt.

MfG
..::SD::..
 
Naja, ohne die Variabeln in der URL weiter zu geben (index.php?seite=3) wird es dann gar nicht so einfach.

Möglich ist es. Alphabetisch hast du ja schon das Query richtig gemacht.
Um die ersten 100 auszugeben musst du an das Query einfach nur ein LIMIT 100 dransetzen. Nur dann gibt PHP wirklich nur die 100 und mehr nicht.

Dafür müsstest du dir das Gästebuch-Seiten-Script umschreiben, so dass es für dich optimal ist. Aber ich würde dir auf jeden Fall schon dazu raten, per URL die Variable weiter zu geben.

[EDIT] Da war wohl jemand schneller :-)
 
Du hast den Sinn von php noch nicht so kapiert, oder? Du brauchst doch nur eine einzige Datei.

PHP:
$result = mysql_query("SELECT name,strasse,ort FROM adressen WHERE name LIKE 'a%' ORDER BY name LIMIT 0,99;");

Der gibt dir z.b. die ersten 100 aus. Man füge noch eine Variable $offset ins skript ein, dann wird draus:

PHP:
$result = mysql_query("SELECT name,strasse,ort FROM adressen WHERE name LIKE 'a%' ORDER BY name LIMIT ".$offset.",".($offset+99).";");

Für $offset = 100 siehst du dann Einträge von 100-199 usw... die Links zum Blättern sind dann auch keine Schwierigkeit mehr.

Ciao, Nino

/edit: gut, wenn 3 gleichzeitig posten, kann's schon mal passieren, dass was doppelt ist... :rolleyes:
 
Zuletzt bearbeitet:
Hey super -habt vielen Dank (alle drei! ;))
Ich werd es gleich mal ausprobieren!
Übrigens: Dass es ohne Variablen in der URL gehen soll, hängt damit zusammen, dass die Seite auch bei Google gefunden werden soll....das ist mit Variablen in der URL ja doch immer schwierig.

Gruß TripHop
 
Zuletzt bearbeitet:
Zurück