Guten Tag,
ich habe ein Script geschrieben, mit dem jeder Besucher seinen eigenen Filter zusammenstellen kann. Der Filter wird als Bestätigung nochmal auf der Webseite angezeigt. Er wird über str_replace direkt von der SQL-Abfrage abgewandelt.
Im Moment sieht das ganze so aus:
Zitat:
|
SELECT userID FROM db WHERE name = 'Wing' AND (klasse = 'WG11/1' OR klasse = 'Freizeitklasse' OR klasse = 'WG12/1') AND (kapitelID = '12' OR kapitelID = '6' OR kapitelID = '18' OR kapitelID = '36' OR kapitelID = '1' OR kapitelID = '39') AND sprachen = '1';
|
Zitat:
|
Filter: Daten von Wing und (klasse = WG11/1 oder klasse = Freizeitklasse oder klasse = WG12/1) und (kapitelID = 12 oder kapitelID = 6 oder kapitelID = 18 oder kapitelID = 36 oder kapitelID = 1 oder kapitelID = 39) und sprachen = 1:
|
Der Code ist im Moment noch relativ einfach:
PHP-Code:
$sql = "SELECT userID FROM db WHERE".$filterstring;
echo $sql."
\n";
$einfach = str_replace("SELECT userID FROM db WHERE name = '", "Filter: Daten von [b]", $sql);
$einfach = str_replace("' AND ", "[/b] [i]und[/i] ", $einfach);
$einfach = str_replace("'", "", $einfach);
$einfach = str_replace("OR", "[i]oder[/i]", $einfach);
$einfach = str_replace("AND", "[i]und[/i]", $einfach);
$einfach = str_replace(";", ":", $einfach);
echo $einfach;
$result = mysql_query($sql) OR die(mysql_error());
// ......
Jetzt sieht man hier ja so oft "oder kapitelID = '36' oder " usw. Hier meine Frage: Welche Methoden gibt es, das ganze vereinfacht darzustellen, in etwa so: "bei denen Kapitel = 1, 2, 3, 12, 36 ist."
mfg Wing