Hallo zusammen,
ich befasse mich erst kurz mit PHP und mysql, da ich dies für ein Projekt in der Firma brauche.
Das Schreiben von Daten mittels Formular in eine Tabelle hat funktioniert.
Nun werden diese Daten und solche aus anderen Tabellen (über Keys verbunden) nach verschiedenen Kritieren (im Moment 2) per Formulareingabe abgefragt. (Entweder oder)
Das erste Kriterium ist die Abfrage nach einer Seriennummer, welche auch als einzelne Abfrage funktioniert.
Das zweite Kriterium ist die Abfrage nach einem Datum. Bzw. die Tabelle enthält eine Spalte DatVon und eine Spalte DatBis, Datumsformat yyyy-mm-dd. Im Formular gebe ich ein Datum ein und es sollen die Datensätze ausgegeben werden, bei welchem das Datum zwischen DatVon - DatBis liegt...
Das Datum wandle ich für diese Abfrage ebenfalls um von dd.mm.yyyy in yyyy-mm-dd (so wie ich es für den Datenbankeintrag mache).
Die Abfrage nur nach Datum hat über SQL im myPHPAdmin unter Verwendung eines spezifischen Datums funktioniert.
Nun habe ich 2 Probleme:
1. Wenn ich die Abfrage nur nach Datum übers Web/Formular versuche (mit untenstehndem Code ohne die OR Zeile), dann bekomme ich keine Fehlermeldung, aber auch keinen Eintrag zurück, obwohl es in der DB einen gültigen Eintrag gäbe.
An der Datumumwandlung sollte es nicht liegen, diese wird korrekt umgewandelt (Wert geprüft über Ausgabe mit echo (datum)). Oder kann ich den Vergleich nicht so ausführen?
2. Wenn ich beide Bedingungen zusammenfüge mit OR, dann bekomme ich Fehlermeldungen:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/jolanda/public_html/test_cso/abfrage.php on line 56
In 56 wird $ergebnis verwendet, also muss $ergebnis ja falsch bzw. not valid sein?
Ausserdem ergibt die Fehlerausgabe.:
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 '' at line 6 , wobei line 6 meiner Meinung nach der 6. Linie nach $abfrage entspricht.
Ich habe schon einiges versucht, komme aber nicht mehr weiter...
Der Code dazu...
...hier geht es natürlich noch weiter, aber die Ausgabe funktioniert.
So... jetzt hoffe ich, dass es nicht zu umständlich ausgedrückt ist und danke schon im Voraus für die Hilfe...
lg
Jolanda
ich befasse mich erst kurz mit PHP und mysql, da ich dies für ein Projekt in der Firma brauche.
Das Schreiben von Daten mittels Formular in eine Tabelle hat funktioniert.
Nun werden diese Daten und solche aus anderen Tabellen (über Keys verbunden) nach verschiedenen Kritieren (im Moment 2) per Formulareingabe abgefragt. (Entweder oder)
Das erste Kriterium ist die Abfrage nach einer Seriennummer, welche auch als einzelne Abfrage funktioniert.
Das zweite Kriterium ist die Abfrage nach einem Datum. Bzw. die Tabelle enthält eine Spalte DatVon und eine Spalte DatBis, Datumsformat yyyy-mm-dd. Im Formular gebe ich ein Datum ein und es sollen die Datensätze ausgegeben werden, bei welchem das Datum zwischen DatVon - DatBis liegt...
Das Datum wandle ich für diese Abfrage ebenfalls um von dd.mm.yyyy in yyyy-mm-dd (so wie ich es für den Datenbankeintrag mache).
Die Abfrage nur nach Datum hat über SQL im myPHPAdmin unter Verwendung eines spezifischen Datums funktioniert.
Nun habe ich 2 Probleme:
1. Wenn ich die Abfrage nur nach Datum übers Web/Formular versuche (mit untenstehndem Code ohne die OR Zeile), dann bekomme ich keine Fehlermeldung, aber auch keinen Eintrag zurück, obwohl es in der DB einen gültigen Eintrag gäbe.
An der Datumumwandlung sollte es nicht liegen, diese wird korrekt umgewandelt (Wert geprüft über Ausgabe mit echo (datum)). Oder kann ich den Vergleich nicht so ausführen?
2. Wenn ich beide Bedingungen zusammenfüge mit OR, dann bekomme ich Fehlermeldungen:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/jolanda/public_html/test_cso/abfrage.php on line 56
In 56 wird $ergebnis verwendet, also muss $ergebnis ja falsch bzw. not valid sein?
Ausserdem ergibt die Fehlerausgabe.:
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 '' at line 6 , wobei line 6 meiner Meinung nach der 6. Linie nach $abfrage entspricht.
Ich habe schon einiges versucht, komme aber nicht mehr weiter...
Der Code dazu...
PHP:
<?php
$srn_s = $_POST["srn_s"];
$datum_s = $_POST["datum_s"];
$datumsep=explode(".",$datum_s);
$ndatum=$datumsep[2]."-".$datumsep[1]."-".$datumsep[0];
echo $ndatum;
$abfrage =
"SELECT inp.srn, inp.pnr, inp.DatVon, inp.DatBis, inp.ZeitVon, inp.ZeitBis, per.VorName, per.Nachname, per.Natel, per.TelefonPrivat, mif.REG, mif.KUNDENNAME, mif.ORT
FROM input inp
LEFT JOIN personal per ON (inp.pnr = per.PNR)
LEFT JOIN mif ON (inp.srn = mif.SERIENR)
WHERE inp.DatVon <= $ndatum OR inp.DatBis >= $ndatum
OR inp.srn LIKE $srn_s
";
echo $ndatum_s;
echo (mysql_error());
$ergebnis = mysql_query($abfrage);
...hier geht es natürlich noch weiter, aber die Ausgabe funktioniert.
So... jetzt hoffe ich, dass es nicht zu umständlich ausgedrückt ist und danke schon im Voraus für die Hilfe...
lg
Jolanda