phpbar.de logo

Mailinglisten-Archive

[php] Sortierung und Ausgabe

[php] Sortierung und Ausgabe

Nadja Senoucci nadja_(at)_fanfilm.de
Mon, 01 Nov 1999 17:11:57 +0100


Egon Schmid wrote:
> 
> Nadja Senoucci wrote:
[...]
> > Ich möchte die Einträge mit Kundennummer zuerst
> > ausgegeben haben und dann erst die ohne (kdnr==0) was ich
> > mit dem mysql-Befehl "order by kdnr desc" realisiert habe.
> > Nun möchte ich diese Einträge noch nach PLZ sortieren, was
> > ich mit "order by kdnr desc,plz asc" probiert habe. Dieser
> > Befehl sortiert die Einträge ohne Kundennummer (kdnr==0)
> > auch prima, aber die mit (z.B. 20001,20002,20003...)
> > natürlich nicht. Wie schaffe ich es nun, daß diese Einträge
> > auch noch nach PLZ sortiert werden?
> 
> Mach zwei Querys: eine nach kdnr = 0 und eine nach kdnr > 0. Wenn jeder
> Kunde eine andere Nummer hat, dann kann nicht auch noch nach der PLZ
> sortiert werden. Das funktioniert nur bei den Kundennummern die gleich
> bleiben, als bei Kunden mit der Nummer 0.

Ich hatte das mit den zwei Querys schon mal versucht, das
brachte allerdings mein "Blättern" durcheinander (lese
hierzu meine Mail "[php] Ausgabe optimieren...")

> > Zweite Frage: Ich habe mit dem mysql-Befehl "group by" in
> > diesem Zusammenhang experimentiert (group by kdnr). Von 25
> > Einträgen - die er mir hätte ausgeben sollen - hat er mir
> > aber nur fünf ausgegeben, nämlich die vier mit kdnr und
> > einen ohne kdnr (bzw. kdnr==0). So wie ich diesen Befehl
> > verstanden habe sollte er mi doch die Einträge nach kdnr
> > gruppiert ausgeben, oder nicht?
> 
> Kommen die Kundennummern mehrfach vor? Wenn dem so ist, dann stimmt doch
> Dein Ergebnis, wie man bei der Gruppe mit der Kundennummer = 0 sehen
> kann.  Vielleicht missverstehst Du den Begriff Kundennummer. Jeder Kunde
> sollte eine eindeutige Kundennummer haben. In der Kundentabelle darf
> eine Kundenummer nur einmal auftauchen. Ansonsten liegt ein
> schwerwiegender Designfehler vor.

Kundennummer==0 bedeutet einfach, daß der Kunde noch eine
Kundennummer hat (oder aber kein Partner ist oder sein will)
und die werden dann anders (gegenüber denen mit kdnr
beachteiligt) gelistet. Die eigentlichen Kundennummern
kommen dann nur einmal vor.
Laut meinem Buch (SQL for Dummies) gibt der Befehl "group by
kdnr" alle einträge nach kdnr gruppiert in aufsteigender
Reihenfolge aus. Zumindest behauptet das Beispiel das und
aus dem erklärendem Text ist das auch zu entnehmen, oder
verstehe ich das alles nur total falsch??

Bye,
	Nadja


php::bar PHP Wiki   -   Listenarchive