Login  Regeln Aktuelles Datum und Uhrzeit: 05.12.2008, 05:43  
Startseite
Registrieren
Profil
Suchen
Mitgliederliste
Verzeichnis
Impressum



Partner
kostenlose Homepage
Fussball
Kostenloses Forum
SMS kostenlos
Webhosting
Webmasterportal
Kostenlos
Kredit ohne Schufa
Esoterik-Forum
Selbsthilfeforum
Artikel Backlink
Datenrettung
erweiterte sort-Abfrage

 
Neues Thema eröffnen   Neue Antwort erstellen    Webmaster Forum -> Serverseitige Websprachen
Vorheriges Thema anzeigen Nächstes Thema anzeigen 
Autor Nachricht
Caipi
Neuer [User]
Neuer



Anmeldung: 07.07.08
Beiträge: 2

BeitragVerfasst am: 07.07.2008, 22:50    Titel: erweiterte sort-Abfrage Antworten mit Zitat

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
Private Nachricht senden
maudim02
Helfer [User]
Helfer



Anmeldung: 30.09.06
Beiträge: 158

BeitragVerfasst am: 08.07.2008, 06:46    Titel: Antworten mit Zitat

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
Private Nachricht senden
Caipi
Neuer [User]
Neuer



Anmeldung: 07.07.08
Beiträge: 2

BeitragVerfasst am: 08.07.2008, 06:50    Titel: Antworten mit Zitat

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
Private Nachricht senden
umt
Beliebter [User]
Beliebter



Anmeldung: 29.11.07
Beiträge: 325

BeitragVerfasst am: 08.07.2008, 07:03    Titel: Antworten mit Zitat

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
Private Nachricht senden Website dieses Benutzers besuchen
maudim02
Helfer [User]
Helfer



Anmeldung: 30.09.06
Beiträge: 158

BeitragVerfasst am: 08.07.2008, 07:04    Titel: Antworten mit Zitat

achso, sooo war das gemeint Smilie
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 Smilie

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
Private Nachricht senden
eforium
Bekannter [Mod]
Bekannter



Anmeldung: 20.01.06
Beiträge: 1349
Wohnort: Irgendwo i ...

BeitragVerfasst am: 08.07.2008, 19:27    Titel: Antworten mit Zitat

Nichts zum Thema direkt, aber es ist total unsicher und schwachsinnig, die Ordnungen direkt in der URL mitzuliefern, so SQL Injection, aber.... Du musst es ja wissen...
_________________
Deihro Internet Programming - Ihre Webseite zu angenehmen Konditionen
Sie suchen eine TemplateEngine? Klicken Sie!


Nach oben
Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
maudim02
Helfer [User]
Helfer



Anmeldung: 30.09.06
Beiträge: 158

BeitragVerfasst am: 09.07.2008, 07:38    Titel: Antworten mit Zitat

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
Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

Gehe zu:  

Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge MySQL Abfrage BiBaButzemann Serverseitige Websprachen 3 28.03.2008, 19:12 Letzten Beitrag anzeigen
Keine neuen Beiträge MySQL-Abfrage in Array speichern Xanni Serverseitige Websprachen 11 19.03.2008, 10:45 Letzten Beitrag anzeigen
Keine neuen Beiträge MySQL: Abfrage über 2 Tabellen und An... Stoepselsammler Serverseitige Websprachen 2 08.03.2008, 21:15 Letzten Beitrag anzeigen
Keine neuen Beiträge preg_match() abfrage geht nicht disler Serverseitige Websprachen 2 04.12.2007, 12:26 Letzten Beitrag anzeigen
Keine neuen Beiträge Login abfrage AlexanderRoeder Einsteigerforum 8 16.09.2007, 16:04 Letzten Beitrag anzeigen
Threadübersicht