|
| Autor |
Nachricht |
Caipi Neuer [User]

Anmeldung: 07.07.08 Beiträge: 2
|
Verfasst am: 07.07.2008, 22:50 Titel: erweiterte sort-Abfrage |
|
|
Hallo zusammen!
Ich habe auf einer der Seiten meiner Homepage folgende SQL-Abfrage:
| Code: | $sql = "SELECT
name,
ha_tore_s_okt,
gf_tore_s_okt
FROM
caipi_statistik
ORDER BY
".$_GET['sort'];
|
Auf dieser Seite befindet sich eine Tabelle mit 4 Spalten. Durch ein Klicken auf die jeweiligen Spaltenüberschrift, soll die Tabelle entsprechend sortiert werden. Das Ganze habe ich folgendermaßen gelöst:
| Code: | echo "<td><a href=\"./Tore_einzeln.php?sort=name ASC\">Name</td>\n";
echo "<td><a href=\"./Tore_einzeln.php?sort=gf_tore_s_okt DESC\">Rasen</td>\n";
echo "<td><a href=\"./Tore_einzeln.php?sort=ha_tore_s_okt DESC\">Halle</td>\n";
echo "<td><a href=\"./Tore_einzeln.php?sort=ha_tore_s_okt + gf_tore_s_okt DESC\">Gesamt</td>\n";
|
Bei den ersten 3 Spalten funktioniert es einwandfrei, nur bei Spalte 4 bekomme ich folgende Fehlermeldung:
| Code: | | You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'gf_tore_s_okt DESC' at line xx |
Ich habe schon verschiedenes probiert, bin jetzt aber am Ende mit meinem Latein. Evtl kann mir ja jemand von euch weiterhelfen?!
Danke schon mal vorab!
|
|
| Nach oben |
|
 |
maudim02 Helfer [User]


Anmeldung: 30.09.06 Beiträge: 158
|
Verfasst am: 08.07.2008, 06:46 Titel: |
|
|
naja du kannst das order by nicht mit + verbinden,
da musst du schreiben ORDER BY ha_tore_s_okt, gf_tore_s_okt
also so:
| Code: | echo "<td><a href=\"./Tore_einzeln.php?sort=name ASC\">Name</td>\n";
echo "<td><a href=\"./Tore_einzeln.php?sort=gf_tore_s_okt DESC\">Rasen</td>\n";
echo "<td><a href=\"./Tore_einzeln.php?sort=ha_tore_s_okt DESC\">Halle</td>\n";
echo "<td><a href=\"./Tore_einzeln.php?sort=ha_tore_s_okt, gf_tore_s_okt DESC\">Gesamt</td>\n";
|
|
|
| Nach oben |
|
 |
Caipi Neuer [User]

Anmeldung: 07.07.08 Beiträge: 2
|
Verfasst am: 08.07.2008, 06:50 Titel: |
|
|
Man kann schon Rechenoperationen in der SQL-Abfrage durchführen! So läuft z.B. folgende Abfrage einwandfrei:
| Code: |
$sql = "SELECT
name,
ha_tore_s_okt,
gf_tore_s_okt,
ha_spiele,
gf_spiele
FROM
caipi_statistik
ORDER BY
((ha_tore_s_okt + gf_tore_s_okt)/(ha_spiele + gf_spiele)) DESC;";
|
|
|
| Nach oben |
|
 |
umt Beliebter [User]

Anmeldung: 29.11.07 Beiträge: 325
|
Verfasst am: 08.07.2008, 07:03 Titel: |
|
|
Dann versuche doch mal so wie in dem funktionierenden Beispiel, die Rechenoperation in Klammern zu setzen. Also:
| Code: | | echo "<td><a href=\"./Tore_einzeln.php?sort=(ha_tore_s_okt + gf_tore_s_okt) DESC\">Gesamt</td>\n"; |
_________________
www.jexlab.net - Webentwicklung zu fairen Konditionen
www.netzonaut.de - Blog zum Thema Webentwicklung, Internet, Linux und OpenSource-Software
|
|
| Nach oben |
|
 |
maudim02 Helfer [User]


Anmeldung: 30.09.06 Beiträge: 158
|
Verfasst am: 08.07.2008, 07:04 Titel: |
|
|
achso, sooo war das gemeint
Ich hab gedacht er soll zuerst nach "ha_tore_s_okt" sortieren, dann bei gleichen werten von "ha_tore_s_okt" soll er nach "gf_tore_s_okt " sortieren... sry, hab da was falsch verstanden
also dann kannst du das so probieren:
| Code: |
SELECT
name,
ha_tore_s_okt,
gf_tore_s_okt,
ha_spiele,
gf_spiele,
ha_spiele+gf_spiele
FROM
caipi_statistik
ORDER BY
6; |
|
|
| Nach oben |
|
 |
eforium Bekannter [Mod]


Anmeldung: 20.01.06 Beiträge: 1349 Wohnort: Irgendwo i ...
|
|
| Nach oben |
|
 |
maudim02 Helfer [User]


Anmeldung: 30.09.06 Beiträge: 158
|
Verfasst am: 09.07.2008, 07:38 Titel: |
|
|
also genau so würd ich das auch nicht machen...
vielleicht einfach net zahl in der url übergeben,
und dann vor dem sql statement einfach
switch case und dann dem entsprechend die statements zusammenbauen...
|
|
| Nach oben |
|
 |
|
|