 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
04.09.2005, 14:13
|
#16
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Dein Fehler ist, das $id nix vorhanden ist.
entwerder schreibst du
"ORDER BY id"
oder
$id = "id"
"ORDER BY ".$id
|
|
|
04.09.2005, 14:21
|
#17
|
|
TP-Senior
Registriert seit: Oct 2001
Ort: schweiz
|
klappt immer noch nicht
PHP-Code:
<?php
$query_zusatz = "WHERE";
if(isset($_POST['Submit']) AND $_POST['Submit']=="Suchen"){
if(isset($_POST['id']) AND $_POST['id']!=""){
$query_zusatz .=" id=".$_POST['id']." AND ";
}
if(isset($_POST['titel']) AND $_POST['titel']!=""){
$query_zusatz .=" titel='".$_POST['titel']."'";
}
if($query_zusatz=="WHERE") $query_zusatz="";
$db->query("SELECT * FROM news ".$query_zusatz." ORDER BY "$id = "id");
while($db->next_record()) {
$stil=="#EFEFEF"?$stil = "#FFFFFF":$stil="#EFEFEF";
?>
|
|
|
04.09.2005, 14:23
|
#18
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Meine Güte:
$db->query("SELECT * FROM news ".$query_zusatz." ORDER BY id");
|
|
|
04.09.2005, 14:27
|
#19
|
|
TP-Senior
Registriert seit: Oct 2001
Ort: schweiz
|
wenn ich den suchformular abrufe erscheint auf den ersten aufruf kein fehlermeldung, erst beim suchen z.B id 23 erscheint dann fehlermeldung:
Database error: Invalid SQL: SELECT * FROM news WHERE id=23 AND ORDER BY id
MySQL Error: 1064 (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 1)
Session halted.
|
|
|
04.09.2005, 14:30
|
#20
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
ich hab doch beschrieben, wie man das letzte AND wegbekommt
Du musst Dir das schon genauer anschauen, oder verstehst Du die SQL-Abfragen nicht ?
|
|
|
04.09.2005, 14:31
|
#21
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Das ist es ja, was ich oben meinte, wenn nur nach id gesucht wird, dann wird halt auch schon ein AND angesetzt und nicht erst dann, wenn die WHERE-Klausel min 2. Attribute hat.
Sinniger ist IMHO die Abfrage
if($query_zusatz!="WHERE ") $query_zusatz.=" AND ";
Mal am Rande gefragt, verstehst du das, was da passiert?
|
|
|
04.09.2005, 14:34
|
#22
|
|
TP-Senior
Registriert seit: Oct 2001
Ort: schweiz
|
Zitat:
|
Zitat von St@eff.en
ich hab doch beschrieben, wie man das letzte AND wegbekommt
Du musst Dir das schon genauer anschauen, oder verstehst Du die SQL-Abfragen nicht ?
|
wo hast du es mir beschrieben?
|
|
|
04.09.2005, 14:35
|
#23
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
In Antwort #10
Zitat:
Ich mach es eigentlich immer so und nehm dann die letzten Zeichen weg, also das letzte "AND "
if(substr($query_zusatz,-4)=="AND ") $query_zusatz=substr($query_zusatz,0,strlen($query_zusatz)-4));
|
|
|
|
04.09.2005, 14:47
|
#24
|
|
TP-Senior
Registriert seit: Oct 2001
Ort: schweiz
|
hab mühe jetzt zu verstehen
ich hab mühe es zu verstehen und komme jetzt nicht weiter, könnt ihr mir nette weise nochmals erklären?
wenn es geht in schritt weise vielen dank
|
|
|
04.09.2005, 15:02
|
#25
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Ich versuchs mal
Eine SQL-Abfrage hat 3 wichtige Komponenten:
1. SELECT [FELDER] FROM [TABELLE]
2. WHERE [Bedingung1 AND Bedingung2]
3. ORDER BY [FELD]
Wenn Du eine Where-Klausel zusammensetzt, muss die Form stimmen, es darf nicht mit AND enden wie in Deinem Fall.
Wenn man dynamisch eine Where-Klausel zusammensetzt, fängt man mit WHERE an.
Man muss am Ende prüfen, ob überhaupt Bedingungen zugefügt wurden, sonst muss man das WHERE wieder entfernen.
Eine einfache Form der Zusammensetzung ist
if(dazu1) $where.="dazu1=x AND";
if(dazu2) $where.="dazu2=x AND";
if(dazu3) $where.="dazu3=x AND";
jetzt hat man entweder nur das WHERE => löschen
oder man hat das AND am Schluss => letzten 4 Zeichen wegnehmen. Das geht mit oben beschriebener Funktion.
|
|
|
04.09.2005, 15:21
|
#26
|
|
TP-Senior
Registriert seit: Oct 2001
Ort: schweiz
|
vielen dank für deine ausführliche erklärung.
ich werde mal so versuchen es einzurichten, melde mich später vielen dank nochmals für eure engagement ;-)
|
|
|
05.09.2005, 22:07
|
#27
|
|
TP-Senior
Registriert seit: Oct 2001
Ort: schweiz
|
geht einfach nicht
sorry aber ich kriege das nicht hin.
<?php
$query_zusatz = "WHERE";
if(isset($_POST['Submit']) AND $_POST['Submit']=="Suchen"){
if(isset($_POST['id']) AND $_POST['id']!=""){
$query_zusatz .=" id=".$_POST['id']." AND ";
}
if(isset($_POST['titel']) AND $_POST['titel']!=""){
$query_zusatz .=" titel='".$_POST['titel']."'";
}
if($query_zusatz=="WHERE") $query_zusatz="";
$db->query("SELECT * FROM news ".$query_zusatz." ORDER BY ".$id);
while($db->next_record()) {
$stil=="#EFEFEF"?$stil = "#FFFFFF":$stil="#EFEFEF";
?>
|
|
|
05.09.2005, 22:29
|
#28
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
query("SELECT * FROM news ".$query_zusatz." ORDER BY ".$id);
Sorry, willst du trollen, oder bist du zu dumm (sorry) um zu lesen?
Wie oft und wie ausfürlich soll man es dir denn noch schreiben?
Dein Problem ist hier schon beschreiben worden!!!
WO IST DENN $ID DEFINIERT WORDEN????
==> siehe Antwort #16
|
|
|
05.09.2005, 22:37
|
#29
|
|
TP-Senior
Registriert seit: Oct 2001
Ort: schweiz
|
WOW, hattest du einen schlechten Tag heute oder was, dass du dich engagierst danke ich dir aber nicht auf dieser Art, denn dass hat niemand nötig.
zu mein Problem wenn ich nach dein kurz beschreibene Antwort #16 vorgehe dann sieht es folgendermasse aus:
PHP-Code:
<?php
$query_zusatz = "WHERE";
if(isset($_POST['submit']) AND $_POST['submit']=="Suchen"){
if(isset($_POST['id']) AND $_POST['id']!=""){
$query_zusatz .=" id=".$_POST['id']."AND";
}
if(isset($_POST['titel']) AND $_POST['titel']!=""){
$query_zusatz .=" titel=".$_POST['titel']."";
}
if($query_zusatz=="WHERE") $query_zusatz="";
$db->query("SELECT * FROM news ".$query_zusatz." ORDER BY $id = "id");
while($db->next_record()) {
$stil=="#EFEFEF"?$stil = "#FFFFFF":$stil="#EFEFEF";
?>
dann erscheint folgender fehlermeldung :
Parse error: parse error, unexpected T_STRING in news/news_suchen.php on line 66
Zitat:
|
Zitat von webcreate
query("SELECT * FROM news ".$query_zusatz." ORDER BY ".$id);
Sorry, willst du trollen, oder bist du zu dumm (sorry) um zu lesen?
Wie oft und wie ausfürlich soll man es dir denn noch schreiben?
Dein Problem ist hier schon beschreiben worden!!!
WO IST DENN $ID DEFINIERT WORDEN????
==> siehe Antwort #16
|
|
|
|
05.09.2005, 22:52
|
#30
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Und das was du nun versuchst hast du schon in #17 gemacht, worauf ich mit #18 geantwortet habe.
Also schau dir #16 mal genau an...
dann kommst du auf die Lösung:
PHP-Code:
$id = "id"; $db->query("SELECT * FROM news ".$query_zusatz." ORDER BY ".$id);
Eine Var.-Zuweisung in einem Query geht nunmal nicht, daher der Parser Error.
Einen schlechte Tag? Nööö, ehr im Gegenteil, nur wenn man hier schon kostenlose und sehr ausführliche Hilfe bekommt, kann ich wohl verlangen, dass der andere sich die Tipps aufmerksam durchliesst und sich auch mal selber gedanken macht.
Und das vermisse ich hier doch sehr.
Geändert von webcreate (05.09.2005 um 23:02 Uhr).
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
| | | |