MYSQL Select Suchfunktion mit Filtern
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
abfragen
aktion
aufbauen
begreifen
benutzen
beruf
berufsbezeichnung
bescheidener hinweis
beschreibung
code
form
posten
reihenfolge
sagen
status
string
suche
suchwort
url
-
Hallo!
Ich möchte gerne eine Suchfunktion in ein kleines PHP Programm einbauen.
Dabei soll die Mysql Datenbank durchsucht werden.
Folgende Variablen werden von dem Suchformular übergeben. Nach diesen Begriffen soll gesucht werden.
$_POST['suchwort'] //Wenn ausgefüllt suche nach Suchwort $_POST['beruf'] //Wenn ausgefüllt filtere Beruf $_POST['fuehrerschein'] value "ja, nein" //Wenn "ja" suche in "fueherscheine" nach "ja", ansonsten keine Aktion $_POST['plz'] //Suche nach x in "plz"... $_POST['plz_radius'][1-??] //...oder nach weiteren PLZ (Ausgabe von PLZ im Umkreis von x km in Form eines array) $_POST['verfuegbar'] value "Ja, Egal" //Wenn Status "Ja" suche in "status" nach "ja", ansonsten keine Aktion
Ich habe mir gedacht, ich könnte das irgendwie so aufbauen:
if ($_POST['suchwort'] != ""){ $suchwort = "name LIKE '%".$_POST['suchwort']."%' AND strasse_nr LIKE '%".$_POST['suchwort']."%' AND sozialvers LIKE '%".$_POST['suchwort']."%' AND beruf_werdegang LIKE '%".$_POST['suchwort']."%' "; } if ($_POST['berufsbezeichnung'] != ""){ $beruf = " AND berufsbezeichnung LIKE '%".$_POST['beruf']."%' "; } if ($_POST['fuehrerschein'] == "ja"){ $fuehrerschein = " AND ob_fuehrerschein = 'Ja' "; } if ($_POST['plz'] != ""){ $plz = " AND plz = '".$_POST['plz']."' "; } if ($_POST['verfuegbar'] == "Ja"){ $status = " AND status = 'aktiv' "; } $search = mysql_query("SELECT * FROM bewerbungen WHERE ".$suchwort.$beruf.$fuehrerschein.$status."");
Die Abfrage funktioniert aber nicht, ich muss sagen ich kenne mich in diesem Bereich auch zu wenig aus.
Betrachtet die Abfrage oben als "groben Entwurf" ;)
Bitte um Hilfe!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
stargate schrieb:
...$_POST['suchwort'] //Wenn ausgefüllt suche nach Suchwort ...
Ich habe mir gedacht, ich könnte das irgendwie so aufbauen:
if ($_POST['suchwort'] != ""){ $suchwort = "name LIKE '%".$_POST['suchwort']."%' AND strasse_nr LIKE '%".$_POST['suchwort']."%' AND sozialvers LIKE '%".$_POST['suchwort']."%' AND beruf_werdegang LIKE '%".$_POST['suchwort']."%' "; } ...
also wenn du jetzt mit nur einer variable - $_POST['suchwort'] - nach name, strasse_nr, sozialvers, beruf_werdegang (also nach 4! dingen suchst) dann kan man nur sagen: das geht - meistens - schlecht. oder du hast die beschreibung deines problems noch zu verbessern.
-
Hallo
ich habe vielleicht eine Lösung.
Wenn es keine Suche gibt, will die Abfrage einen string abfgagen der nicht existiert.
Für wie if-abfrage für's deklarieren der strings, würde ich
stattif(isset($_POST['suchwort'])) { $suchwort = ...; }
benutzen.if ($_POST['suchwort'] != ""){ $suchwort = "name LIKE '%".$_POST['suchwort']."%' AND strasse_nr LIKE '%".$_POST['suchwort']."%' AND sozialvers LIKE '%".$_POST['suchwort']."%' AND beruf_werdegang LIKE '%".$_POST['suchwort']."%' "; }
Viel Glück -
rechentrainer schrieb:
viel glück? das wird er nach deinem ratschlag auch brauchen!
Hallo
ich habe vielleicht eine Lösung.
Wenn es keine Suche gibt, will die Abfrage einen string abfgagen der nicht existiert.
Für wie if-abfrage für's deklarieren der strings, würde ich
stattif(isset($_POST['suchwort'])) { $suchwort = ...; }
benutzen.if ($_POST['suchwort'] != ""){ $suchwort = "name LIKE '%".$_POST['suchwort']."%' AND strasse_nr LIKE '%".$_POST['suchwort']."%' AND sozialvers LIKE '%".$_POST['suchwort']."%' AND beruf_werdegang LIKE '%".$_POST['suchwort']."%' "; }
Viel Glück
du gibst hir - ohen die ursprüngliche aufgabe und auch nicht die mangelhaftigkeit der 'vorhandenen' lösung (mein bescheidener hinweis darauf) zu begreifen - ratschläge. gut! nur für dich zum langsam mitschreiben:
du kannst nicht mit einer einzigen variable 4 vom grund auf unterschiedliche entitäten abfragen - zum einen;
zum zweiten - wie willst du eine spalte mit einem 'string' abfragen, der nicht existiert? (ich kenne sicherlich 'strings', die du nicht kennst, z.b. gleich 'der Aap'. und wocher willst du das wissen, dass 'der Aap' in seiner tabelle nicht vorkommt?)
bürscherln! vor posten sollte man lesen, begreifen, nachdenken und erst dann posten - möglichst in dieser reihenfolge.
Beitrag zuletzt geändert: 25.3.2013 18:04:34 von czibere -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage