php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Variabler SELECT Suchstring durch checkboxen ?


 
AndreV
07-08-2003, 15:32 
 
Hallo !

Ich möchte eine variable Rezeptabfrage machen bin aber in meinen PHP und SQL Kenntnissen noch ziemlich am Anfang.

Der User gibt in einem Textfeld die variable 'suchwort' vor. z.B. Hackfleisch
Dann kann er durch anklicken von max. 5 Checkboxen die suche auf bestimmte Felder in der SQL-Datenbank festlegen.

Ist die Checkbox aktiviert, soll die SQL Abfrage entsprechend erweitert werden. Die Checkboxen haben aktiviert als value den Teil der SQL-Abfrage.

checkbox1 aktiviert: Abfrage um: name LIKE '$suchwort' erweitern
checkbox2 aktiviert: Abfrage um: kat1 LIKE '$suchwort' erweitern
checkbox3 aktiviert: Abfrage um: kat2 LIKE '$suchwort' erweitern
checkbox4 aktiviert: Abfrage um: zubereitung LIKE '$suchwort' erweitern
checkbox5 aktiviert: Abfrage um: z% LIKE '$suchwort' erweitern

Bei Checkbox5 ist außerdem das Problem das die suche auf die Spalten z1, z2, z3, .. z20 , also 20 Spalten erweitert werden soll, kann ich da einfach z% setzen und er sucht in allen zXX spalten?

Kann ich per Post aus der Checkboxen schon direkt die SQL-Abfrageschnitpel übergeben und dann einfach folgende Abfrage schreiben:


$result=mysql("usr_web10_1","SELECT * FROM rezepte WHERE $checkbox1 $checkbox2 $checkbox3 $xcheckbox4 $checkbox5 ORDER BY name ASC");

Das HTML-Formular mit den Checkboxen und den entsprechenden Vaulue-Werten ist kein Problem für mich, vielmehr ist das Problem wie ich die Übergebenen Werte bzw. SQL-Abfrageschnipsel aus den aktivierten Checkboxen in die SQL-Abfrage einbaue.

Jemand ne Idee, bzw. Erfahrung damit? Danke und Gruss,
André

 
thebrain
07-08-2003, 17:50 
 
also, wenn deine erste checkbox z.b. check1 heisst machst du das:


if(isset($check1))
$check1_source = "name LIKE '$suchwort'";

$result=mysql("usr_web10_1","SELECT * FROM rezepte WHERE $check1_source $checkbox2 $checkbox3 $xcheckbox4 $checkbox5 ORDER BY name ASC");


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:03 Uhr.