Hallo zusammen, mein erster Post hier und gleich mit nem Problem...
Ich habe eine Datenbankabfrage, die mir ziemlich Kopfschmerzen bereitet.
Erstmal zur Erklärung: Es geht um eine Suchfunktion in einer MySQL Datenbank, die nur mit Checkboxen und Pulldowns arbeitet.
Bei dieser Suche hat der User die Möglichkeit Stichwörter mit den Checkboxen ("Ich kann dies und jenes tun") und Tageszeiten mit den Pulldowns ("Vormittag, Nachmittag...") zu suchen. Soweit so gut.
Nun möchte ich, dass in dem Suchergebniss ALLE Datensätze ausgegeben werden sollen, in welchen die Stichwörter gegeben sind, und ALLE Datensätze in denen die Tageszeit vorkommt.
Mit diesem Code werden ja die Ergebnisse ausgegeben, in welchen alle genannten Variablen zusammenkommen; Wenn ich allerdings nur nach Mittwoch suche und die anderen Felder leer lasse, bekomme ich keine Ergebnisse. Wenn ich die selbe Suche in PHPmyAdmin von Hand mache klappt, aber da fülle ich ja auch nur die Felder aus, nach denen ich suche.
Nun (endlich) meine konkrete Frage: wie kann ich erreichen, dass die Datenbank nun nach z.B. nur den Inhalt "Mittwoch" ausgibt wenn nur Mittwoch angegeben ist, und die anderen Tage ausser acht läßt??
Ich hoffe dieser Post is jetzt richtig formatiert (mit dem Code) und ich hab mich verständlich ausgedrückt. Wenn nicht - seht es mit bitte nach - ich versuch mich zu bessern
Ich habe eine Datenbankabfrage, die mir ziemlich Kopfschmerzen bereitet.
Erstmal zur Erklärung: Es geht um eine Suchfunktion in einer MySQL Datenbank, die nur mit Checkboxen und Pulldowns arbeitet.
Bei dieser Suche hat der User die Möglichkeit Stichwörter mit den Checkboxen ("Ich kann dies und jenes tun") und Tageszeiten mit den Pulldowns ("Vormittag, Nachmittag...") zu suchen. Soweit so gut.
Nun möchte ich, dass in dem Suchergebniss ALLE Datensätze ausgegeben werden sollen, in welchen die Stichwörter gegeben sind, und ALLE Datensätze in denen die Tageszeit vorkommt.
PHP-Code:
<?
$stunden=implode(" , ",$HTTP_POST_VARS["stunden"]);
$montag = $HTTP_POST_VARS["montag"];
$dienstag = $HTTP_POST_VARS["dienstag"];
$mittwoch = $HTTP_POST_VARS["mittwoch"];
$donnerstag = $HTTP_POST_VARS["donnerstag"];
$freitag = $HTTP_POST_VARS["freitag"];
$samstag = $HTTP_POST_VARS["samstag"];
$sonntag = $HTTP_POST_VARS["sonntag"];
$conn_id = mysql_connect("xxx","xxx","xxx");
mysql_select_db("xxx",$conn_id);
$sql = "SELECT stunden, montag, dienstag, mittwoch, donnerstag, freitag, samstag, sonntag FROM meine_tabelle WHERE
stunden LIKE '%$stunden%' AND
montag LIKE '$montag' AND
dienstag LIKE '$dienstag' AND
mittwoch LIKE '$mittwoch' AND
donnerstag LIKE '$donnerstag' AND
freitag LIKE '$freitag' AND
samstag LIKE '$samstag' AND
sonntag LIKE '$sonntag'";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result))
...
?>
Nun (endlich) meine konkrete Frage: wie kann ich erreichen, dass die Datenbank nun nach z.B. nur den Inhalt "Mittwoch" ausgibt wenn nur Mittwoch angegeben ist, und die anderen Tage ausser acht läßt??
Ich hoffe dieser Post is jetzt richtig formatiert (mit dem Code) und ich hab mich verständlich ausgedrückt. Wenn nicht - seht es mit bitte nach - ich versuch mich zu bessern
Kommentar