Autor |
Nachricht |
Lydia.h
Threadersteller
Dabei seit: 10.06.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 15.08.2006 22:27
Titel MySQL PHP Felder der Abfrage identifizieren (parsen) |
|
|
Hallo ihr Lieben,
ich habe ein Report-PHP-Script. Diesem Script übergebe ich einen SQL-Befehl, das Script baut die Tabelle.
Nun möchte ich eine Sortierfunktion einbauen.
Dafür durchlaufe ich die Feldnamen und baue daraus eine html-Select-Box. So weit, so gut
while($field = mysql_fetch_field($result)){
$selectOrderby .="<option value='".$field->name."'>".$field->name."</option>";
}
Jetzt stehen aber in dem $field->Name die Bezeichnungen der Felder nach dem AS:
Also: SELECT CONCAT (Nachnahme, ' ' , Vorname) AS Kollege FROM kollegen.
Nun kann man aber nicht nach dem 'Kollege' sortieren.
Nach 'Kollege' kann man aber kein ORDER BY ausführen.
Hat jemand einen Tipp für mich?
Lieben Gruß
Lydia.
|
|
|
|
|
Skyw4lker
Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht:
|
Verfasst Mi 16.08.2006 13:08
Titel
|
|
|
Hmm, also bei mir geht das ORDER auf dem Alias.
Im Zweifelsfall kannst du aber auch
Code: | SELECT CONCAT(Nachnahme, ' ' , Vorname) FROM kollegen ORDER BY CONCAT(Nachnahme, ' ' , Vorname) |
machen. Wichtig ist dabei nur, dass zwischen CONCAT und der offenen Klammer kein Space ist, sonst erkennt
er beim ORDER den Ausdruck nicht.
greetz
stef
Zuletzt bearbeitet von Skyw4lker am Mi 16.08.2006 13:12, insgesamt 2-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
Lydia.h
Threadersteller
Dabei seit: 10.06.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 16.08.2006 13:16
Titel
|
|
|
Hallo Sky,
evtl. funktioniert das bei mir nicht mit dem Alias wegen der MySQL-Version 4, auf der die DB läuft.
Mein Provider kann die MySQL-Version nicht updaten, ich muss die DB kpl. neu machen.
Deine Alternative kann ich ja nicht anwenden, weil ich den 'CONCAT' nicht kenne. In $field->Name steht ja der AS.
Oder kann man den Bereich vor AS auch auslesen?
Liebe Grüße
Ly.
|
|
|
|
|
Skyw4lker
Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht:
|
Verfasst Mi 16.08.2006 13:27
Titel
|
|
|
enthält dein SQL Select nur die CONCAT Klausel als Spalte?
Weil dann kannst du das auch über eine Zahl ansprechen.
In dem Fall 1
Also
Code: | SELECT CONCAT (Nachnahme, ' ' , Vorname) AS Kollege FROM kollegen ORDER BY 1 |
|
|
|
|
|
Lydia.h
Threadersteller
Dabei seit: 10.06.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 16.08.2006 13:58
Titel
|
|
|
Halllo Sky,
das Script erhält eine SELECT-Anweisung (kommt von woanders) und baut diesen dann dynamisch zu einer Tabelle.
Daher ist der SELECT natürlich immer anders, enthält mehrere Spalten, manchmal ein Group By oder auch nicht etc.
Aus den Feldern ($field->Name) erstelle ich dann eine html-Select-Box, damit der User wählen kann, wie er die Liste sortieren will.
Das man beim Order By eine Nummer angeben kann, wußte ich nicht.
Das heißt, ich kann im ORDER BY auch mehrer Nummern angeben, statt der Feld-Namen?
Wäre ja super.
Dann würde ich in dem option.value der html.select einfach die Nummer angeben.
Vielen Dank für den Tipp!!
Liebe Grüße
Ly.
PS: Bist Du der auf dem Foto links oder der im Absender-Stempel?
|
|
|
|
|
Skyw4lker
Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht:
|
Verfasst Mi 16.08.2006 14:00
Titel
|
|
|
Ich bin der auf dem Foto links, der Typ in meiner Signatur ist ein Charakter aus einer
meiner Lieblingsserien
|
|
|
|
|
labrar
Dabei seit: 04.04.2006
Ort: -
Alter: 49
Geschlecht:
|
Verfasst Mi 16.08.2006 22:43
Titel
|
|
|
Wie sieht denn deine Tabellenstruktur aus?
Liest sich so als hättest du keine eindeutigen Bezeichner
|
|
|
|
|
|
|
|
Ähnliche Themen |
PHP Abfrage ob alle Felder ausgefüllt wurden
(php-mysql) übergabe von formulardaten und abfrage m. mysql
[mysql] einzelne Felder exportieren. wie?
MySql abfrage
MySQL Abfrage
[php+mysql] abfrage von x bis y
|
|