Fehler im Code ?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
alphabet
anweisung
auflistung
aussehen
buchstabe
check
code
fehler
funktion
limit
ordern
sorte
sortieren
sortierung
statement
stehen
stichwort
syntax
teil
zahl
-
Hallo!
Ich wollte einmal eine Tabelle Sortieren Lassen,doch leider kommt immer nur ein Fehler:
Fatal error: Datenbankanfrage schlug fehl: 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 'ORDER by 'id'' at line 8 in /home/webpages/lima-city/gaestefun/html/Check/Idarus.php on line 109
Ich habe schon nachgeschaut wo er sein Kann,und e leigt warscheinlich hier:
SELECT * FROM `Idarus` WHERE `Link` LIKE '%%' OR `Beschreibung` LIKE '%%' OR `Seite` LIKE '%%' OR `Titel` LIKE '%%' LIMIT 0, 15 ORDER by 'id'
Doch ich weiß jetzt nicht wo genau der Fehler ist !
Kann mirjemand hierbei bitte Helfen! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ok!
Das hab ich jetzt,doch jetzt ist meine Frage,was ich hier Falsch gemachthabe:
Erst der Dazugehörige HTML Code
<select name="Sortierung"> <option value="Alphabet" >Nach Alphabet sortieren</option> <option value="Datum">Nach Eintragungsdatum sortieren</option> </select>
Und hier der PHP Code:
if($_POST["Sortierung"] == "Alphabet"){ $Auflistung == "'Link'"; } else if($_POST["Sortierung"] == "Datum" ){ $Auflistung = "'id'"; } else { $Auflistung = "'id'"; }
Ich finde hier einfach keinen Fehler..... -
gaestefun schrieb:
Das hab ich jetzt,doch jetzt ist meine Frage,was ich hier Falsch gemachthabe:
Du müsstest schon sagen, wo das Problem ist. Kommt eine Fehlermeldung? -
mmh ich hab jetzt ein Anderes Problem:
Er soll nach Buchstaben Sortieren,doch das einzigste was er macht ist....nichts...er sortiert infach nicht danach:
der HTML teil bleib gleich,und hier ist der PHP Teil I:
if($_POST["Sortierung"] != "") { $Sorte = $_POST["Sortierung"]; }else{ $Sorte = "'$Sterne' desc"; }
Und hier Teil II:
SELECT * FROM `Idarus` WHERE ".$query." ORDER by ".stripslashes($Sorte)." LIMIT $start,15 ";
PS:geht es überhaupt das PHP nach buchstaben Sortieren kann ?
-
Aiaiai...
Also:
1. Dein Code hat starke Sicherheitsmängel. Es wäre einfach SQL-Injections durchzuführen
-> Stichwort: SQL-Injection
2. Beschäftige dich am Besten mal mit Magic Quotes. Ich nehme mal an du hast keine Ahnung warum du da ein stripslashes() benutzt, bzw. warum PHP \ voranstellt.
3. Zum Code:
Lasse dir am Besten einfach mal die SQL-Anweisung ausgeben, die du ausführst.. Dann siehst du was du überhaupt an die Datenbank sendest.
Wenn du nicht darauf kommst schreibe hier wie deine SQL-Statements aussehen und ich seh nochmal drüber.
PS:geht es überhaupt das PHP nach buchstaben Sortieren kann ?
MySQL sortiert hier. Und wonach sollte sonst sortiert werden, wenn nicht nach Buchstaben oder Zahlen?
Hoffe das hilft dir weiter. -
dro schrieb:
Aiaiai...
Also:
1. Dein Code hat starke Sicherheitsmängel. Es wäre einfach SQL-Injections durchzuführen
-> Stichwort: SQL-Injection
2. Beschäftige dich am Besten mal mit Magic Quotes. Ich nehme mal an du hast keine Ahnung warum du da ein stripslashes() benutzt, bzw. warum PHP \ voranstellt.
3. Zum Code:
Lasse dir am Besten einfach mal die SQL-Anweisung ausgeben, die du ausführst.. Dann siehst du was du überhaupt an die Datenbank sendest.
Wenn du nicht darauf kommst schreibe hier wie deine SQL-Statements aussehen und ich seh nochmal drüber.
PS:geht es überhaupt das PHP nach buchstaben Sortieren kann ?
MySQL sortiert hier. Und wonach sollte sonst sortiert werden, wenn nicht nach Buchstaben oder Zahlen?
Hoffe das hilft dir weiter.
Zu 1.
Das ist mir noch nicht aufgefallen
Zu 2.
Ich hab immer neben mir ein 800 Seiten nachschlagregister stehen,zudem ist stripslashes() dazu da,das kein / davorsteht,und dass / muss aber in einer anderen Funktion genutzt werden,dashalb habe ich es nur in dieser einfach nur stripslashes() davorgestellt!
Zu 3.
Hab ich schon^^
Zu "Allgemein"
Das passt nicht zum Thema....! -
Zu 2.
Ich hab immer neben mir ein 800 Seiten nachschlagregister stehen,zudem ist stripslashes() dazu da,das kein / davorsteht,und dass / muss aber in einer anderen Funktion genutzt werden,dashalb habe ich es nur in dieser einfach nur stripslashes() davorgestellt!
Ok. Du weißt, dass PHP automatisch \ voranstellt. Dies diente dazu SQL Injections vorzubeugen. In dem du stripslashes() einsetzt sind SQL Injections wieder möglich. Usereingaben sollten immer geprüft werden bevor du sie verarbeitest.
Zu 3.
Hab ich schon^^
Und jetzt funktioniert es?
Zu "Allgemein"
Das passt nicht zum Thema....!
Was passt nicht zum Thema?
// edit: Typo korrigiert
Beitrag zuletzt geändert: 29.12.2009 16:02:17 von dro -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage