Problem mit ORDER BY

Problem mit ORDER BY

am 29.11.2006 13:11:47 von Ralf Weber

Hallo,

ich arbeite mit einer Tabelle mit folgender Struktur:

ID SMALLINT INDEX PRIMARY KEY auto_increment
Parent_ID SMALLINT
Name VARCHAR(100)

Die Tabelle hat ca. 150 Einträge.

Jetzt möchte ich mit PHP ein HTML-Select-Feld füllen in alphabetisch
geordneter Reihenfolge.
Meine Abfrage: "SELECT ID,Name FROM Tabelle ORDER BY Name ASC"

Das Problem ist, dass die Werte bis zum 64ten Datensatz sortiert sind
und dann beginnt die Sortierung von vorn. Irgendwie habe ich das
Gefühl, dass es mit der Parent_ID zusammenhängt. Die ersten 64
Datensätze haben eine Parent_ID ausschließlich größer 0. Ab der 2.
Sortierung sind die Parent_IDs meist 0, jedoch nicht immer. Es kommen
noch 3 andere Parent_IDs außer 0 in der 2. Hälfte vor.

Wie erhalte ich eine Sortierung nach Name unabhängig von den anderen
Feldern?

Vielen Dank für die Hilfe!

MfG, Ralf...

Re: Problem mit ORDER BY

am 29.11.2006 16:36:46 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: Problem mit ORDER BY

am 29.11.2006 17:31:30 von Ralf Weber

Hallo Andreas,

> > Jetzt möchte ich mit PHP ein HTML-Select-Feld füllen in alphabetisch
>
> PHP ist nicht Thema dieser Gruppe.

Ist klar...

> > Meine Abfrage: "SELECT ID,Name FROM Tabelle ORDER BY Name ASC"
> >
> > Wie erhalte ich eine Sortierung nach Name unabhängig von den anderen
> > Feldern?
>
> Was passiert denn, wenn Du das mal *direkt* in MySQL machst?

Das war auch mein erster Gedanke.
Auch genau dieses Ergebnis wie von mir beschrieben erhalte ich bei
Eingabe dieser Abfrage im MyAdmin.=20

MfG...

Re: Problem mit ORDER BY

am 29.11.2006 17:45:29 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: Problem mit ORDER BY

am 29.11.2006 19:24:04 von Thomas Rachel

RalfWeb1@gmx.de wrote:

>> Was passiert denn, wenn Du das mal *direkt* in MySQL machst?
>
> Das war auch mein erster Gedanke.
> Auch genau dieses Ergebnis wie von mir beschrieben erhalte ich bei
> Eingabe dieser Abfrage im MyAdmin.

direkt in MySQL != ${DINGENS}MyAdmin

Gemeint war der Kommandozeilenclient.

Allerdings glaube ich ehrlich gesagt nicht, daß da was anderes rauskommen
sollte, falls Du die Abfrage in PHP richtig gemacht hast. Um dies zu
verifizieren, kannst Du Dich an de.comp.lang.php.datenbanken wenden...


Thomas
--
"Hallo, Hugo, stell dir vor, ich werde Vater."
"Und warum machst du so ein trauriges Gesicht?"
"Na ja, ich muß es noch meiner Frau erzählen."

Re: Problem mit ORDER BY

am 30.11.2006 13:30:23 von Ralf Weber

Hallo Andreas,

> Kann es sein, daß Du das Php vor dem MyAdmin übersehen hast?
>
> Ansonsten: vielleicht solltest Du mal die table und das Ergebniss auf
> irgend eine Seite zum nachvollziehen stellen. Oder, aber das kann ja
> einklich gar nicht sein, ist MySQL kapott...

Das Resultat mit "ORDER BY":

http://www.wonderer.de/temp/query_result.htm

Das Resultat mit normalem Select:

http://www.wonderer.de/temp/query_result2.htm


Einen Telnet-Zugriff zu meinem Webspace kann ich nicht herstellen. Ich
glaube das wird von meinem Provider nicht unterstützt - da frage ich
erst noch nach...

Danke schon mal für Comments zum Problem!

MfG, Ralf...

Re: Problem mit ORDER BY

am 30.11.2006 13:41:03 von Helmut Chang

RalfWeb1@gmx.de schrieb:

> Das Resultat mit "ORDER BY":
>
> http://www.wonderer.de/temp/query_result.htm

Ein Blick in den Quelltext sollte dir ein paar Hinweise geben:

Ich rate: Datentyp der Spalte `Name` ist CHAR, nicht VARCHAR.
Die erste Gruppe A-Z beginnt in Wirklichkeit nicht mit A-Z, sondern
Leerzeichen.

gruss, heli

Re: Problem mit ORDER BY

am 30.11.2006 13:47:42 von Ralf Weber

Hallo Helmut,

danke für die schnelle Hilfe!

> Ein Blick in den Quelltext sollte dir ein paar Hinweise geben:
>
> Ich rate: Datentyp der Spalte `Name` ist CHAR, nicht VARCHAR.
> Die erste Gruppe A-Z beginnt in Wirklichkeit nicht mit A-Z, sondern
> Leerzeichen.

Ich dachte ich hätte die Werte vorm Einfügen mit den Trim-Funktionen
bearbeitet, aber das scheint doch nicht so zu sein. Da muss ich nochmal
im Code schauen.

Danke!

MfG, Ralf...