tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
675
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    medico medico ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Beiträge
    212
    Hallo,

    habe ein Suchformular erstellt das sieht so aus:
    PHP-Code:
    <form method="POST" action="search.php"
                <
    p align="center">&</p
                <
    div align="center"
                   <
    table border="0" id="table18"
                      <
    tr
                         <
    td
                         <
    p align="center"><b><font face="Verdana">Wählen Sie 
                         Ihre gewünschte Kategorie
    :</font></b></p
                         <
    p align="center"><b><font face="Verdana" size="1">&</font></b><select size="1" name="kategorie_suche"
                         <
    option value="">Alle</option
                         <
    option>Kategorie1</option
                         <
    option>Kategorie2</option
                         <
    option>Kategorie3</option
                         <
    option>Kategorie4</option
                         <
    option>Kategorie5</option
                         <
    option>Kategorie6</option
                         </
    select></p></td
                      </
    tr
                      <
    tr
                         <
    td
                <
    p align="center"><b>Suche einschränken mit</b></p
                <
    p align="center"><font size="1"><b>&</b></font><font face="Verdana"><font size="2">PLZ </font
                <
    input type="text" name="plz_suche" size="5"><font size="2"Ort 
                
    </font><input type="text" name="ort_suche" size="20"></font></p
                         </
    td
                      </
    tr
                      <
    tr
                         <
    td><p align="center"><b><font face="Verdana" size="2">Gewünschte 
                Leistungen
    :</font><font face="Verdana" style="font-size: 5pt"
                         </
    font></b></p
                         <
    div align="center"
                            <
    table border="0" id="table19"
                               <
    tr
                                  <
    td><font face="Verdana"
                <
    input type="checkbox" name="leistung_1" value="1"></font></td
                                  <
    td><font face="Verdana">Leistung 1</font></td
                                  <
    td><font face="Verdana"
                <
    input type="checkbox" name="leistung_2" value="1"></font></td
                                  <
    td><font face="Verdana">Leistung 2</font></td
                               </
    tr
                               <
    tr
                                  <
    td><font face="Verdana"
                <
    input type="checkbox" name="leistung_3" value="1"></font></td
                                  <
    td><font face="Verdana">Leistung 3</font></td
                                  <
    td><font face="Verdana"
                <
    input type="checkbox" name="leistung_4" value="1"></font></td
                                  <
    td><font face="Verdana">Leistung 4 
                                  
    </font></td
                               </
    tr
                               <
    tr
                                  <
    td><font face="Verdana"
                <
    input type="checkbox" name="leistung_5" value="1"></font></td
                                  <
    td><font face="Verdana">Leistung 5</font></td
                                  <
    td><font face="Verdana"
                <
    input type="checkbox" name="leistung_6" value="1"></font></td
                                  <
    td><font face="Verdana">Leistung 6 
                                  
    </font></td
                               </
    tr
                               <
    tr
                                  <
    td><font face="Verdana"
                <
    input type="checkbox" name="lesitung_7" value="1"></font></td
                                  <
    td><font face="Verdana">Leistung 7</font></td
                                  <
    td><font face="Verdana"
                <
    input type="checkbox" name="leistung_8" value="1"></font></td
                                  <
    td><font face="Verdana">Leistung 8</font></td
                               </
    tr
                               <
    tr
                                  <
    td><font face="Verdana"
                <
    input type="checkbox" name="leistung_9" value="1"></font></td
                                  <
    td><font face="Verdana">Leistung 9</font></td
                                  <
    td><font face="Verdana"
                <
    input type="checkbox" name="leistung_10" value="1"></font></td
                                  <
    td><font face="Verdana">Leistung 10</font></td
                               </
    tr
                               <
    tr
                                  <
    td><font face="Verdana"
                <
    input type="checkbox" name="leistung_11" value="1"></font></td
                                  <
    td><font face="Verdana">Leistung 11</font></td
                                  <
    td><font face="Verdana"
                <
    input type="checkbox" name="leistung_12" value="1"></font></td
                                  <
    td
                                  <
    p align="center"><font face="Verdana"
                                  
    Leistung 12</font></td
                               </
    tr
                            </
    table
                         </
    div
                         </
    td
                      </
    tr
                      </
    table
                </
    div
                <
    p align="center"><font face="Verdana">Stichwortsuche 
                
    <input type="text" name="wort_suche" size="20"></font></p
                <
    p align="center"><font face="Verdana"
                <
    input type="submit" value="Absenden" name="B1"><input type="reset" value="Zurücksetzen" name="B2"></font></p
             </
    form
    Dazu die DB-Abfrage sieht so aus:
    PHP-Code:
    <? 
    $result 
    mysql_query("SELECT * FROM tabelle WHERE kategorie LIKE '%$kategorie_suche%' AND plz LIKE '$plz_suche%' AND ort LIKE '$ort_suche%' 
    AND name LIKE '
    $wort_suche%' OR str LIKE '$wort_suche%' AND leistung1 LIKE '$leistung_1' AND leistung2 LIKE '$leistung_2
    AND leistung3 LIKE '
    $leistung_3' AND leistung4 LIKE '$leistung_4' AND leistung5 LIKE '$leistung_5' AND leistung6 LIKE '$leistung_6
    AND leistung7 LIKE '
    $leistung_7' AND leistung8 LIKE '$leistung_8' AND leistung9 LIKE '$leistung_9' AND leistung10 LIKE '$leistung_10
    AND leistung11 LIKE '
    $leistung_11' AND leistung12 LIKE '$leistung_12' ORDER BY anzeigentyp DESC, plz ASC",$db); 
    ?>
    Aber irgendwas ist da falsch, weill wennich im Suchformular eine oder mehere Leistungen auswähle werden diese gar nicht berücksichtigt. Wieso nicht?



    Gruß MediCo
     

  2. #2
    Avatar von ultrasonic
    ultrasonic ultrasonic ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Ort
    Wiesbaden Germany
    Beiträge
    140
    Moin,
    ersetzte mal deine AND´s durch OR´s

    dann sollte es gehen
     

  3. #3
    medico medico ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Beiträge
    212
    Hallo ultrasonic

    wenn ich das mache ist es doch so das die Suche ja nicht eingeschränkt wird sonder alle datensätze gefunden werden die ein Teil von dem variablen haben oder?!
    Weil ich möchte gern das man die suche einschränkt und nur die daten findet die alle eingegebenen variablen hatt...

    Gruß Medico
     

  4. #4
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Hallo medico, Dein SQL-Statement ist falsch. Du darfst nicht gleich alle Leistungen abfragen, sondern nur die, die der Benutzer auch ausgewählt hat.

    So in etwa:
    PHP-Code:
    $sql "SELECT * FROM tabelle
            WHERE kategorie LIKE '%
    $kategorie_suche%' ";
            
    if (isset(
    $plz_suche))  {$sql .= " AND plz LIKE '$plz_suche%' ";}
    if (isset(
    $ort_suche))  {$sql .= " AND ort LIKE '$ort_suche%' ";}
    if (isset(
    $wort_suche)) {$sql .= " AND (name LIKE '$wort_suche%' OR str LIKE '$wort_suche%') ";}
    if (isset(
    $leistung_1))  {$sql .= " AND leistung1 LIKE '$leistung_1' ";}
    if (isset(
    $leistung_2))  {$sql .= " AND leistung2 LIKE '$leistung_2' ";}
    if (isset(
    $leistung_3))  {$sql .= " AND leistung3 LIKE '$leistung_3' ";}
    if (isset(
    $leistung_4))  {$sql .= " AND leistung4 LIKE '$leistung_4' ";}
    if (isset(
    $leistung_5))  {$sql .= " AND leistung5 LIKE '$leistung_5' ";}
    if (isset(
    $leistung_6))  {$sql .= " AND leistung6 LIKE '$leistung_6' ";}
    if (isset(
    $leistung_7))  {$sql .= " AND leistung7 LIKE '$leistung_7' ";}
    if (isset(
    $leistung_8))  {$sql .= " AND leistung8 LIKE '$leistung_8' ";}
    if (isset(
    $leistung_9))  {$sql .= " AND leistung9 LIKE '$leistung_9' ";}
    if (isset(
    $leistung_10))  {$sql .= " AND leistung10 LIKE '$leistung_10' ";}
    if (isset(
    $leistung_11))  {$sql .= " AND leistung11 LIKE '$leistung_11' ";}
    if (isset(
    $leistung_12))  {$sql .= " AND leistung12 LIKE '$leistung_12' ";}

    $sql .= " ORDER BY anzeigentyp DESC, plz ASC ";

    $result mysql_query($sql,$db); 
    Was steht eigentlich Deiner Meinung nach in "$leistung_1" bis "$leistung_12"?
    Laut Übergabe steht dort der Name der Checkbox. Also "leistung1" z.B.

    mfg, snuu
    Geändert von Sven Petruschke (18.01.04 um 19:42 Uhr)
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  5. #5
    Avatar von ultrasonic
    ultrasonic ultrasonic ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Ort
    Wiesbaden Germany
    Beiträge
    140
    hey snuu wo siehst du $leistung1?
     

  6. #6
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Na im SQL-Statement!?
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  7. #7
    Avatar von ultrasonic
    ultrasonic ultrasonic ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Ort
    Wiesbaden Germany
    Beiträge
    140
    wo?


    PHP-Code:
    echo $sql "SELECT * FROM tabelle
                 WHERE kategorie LIKE '%
    $kategorie_suche%'
                 AND plz LIKE '
    $plz_suche%'
                 AND ort LIKE '
    $ort_suche%'
                 AND name LIKE '
    $wort_suche%'
                 OR str LIKE '
    $wort_suche%'
                 AND leistung1 LIKE '
    $leistung_1'
                 AND leistung2 LIKE '
    $leistung_2'
                 AND leistung3 LIKE '
    $leistung_3'
                 AND leistung4 LIKE '
    $leistung_4'
                 AND leistung5 LIKE '
    $leistung_5'
                 AND leistung6 LIKE '
    $leistung_6'
                 AND leistung7 LIKE '
    $leistung_7'
                 AND leistung8 LIKE '
    $leistung_8'
                 AND leistung9 LIKE '
    $leistung_9'
                 AND leistung10 LIKE '
    $leistung_10'
                 AND leistung11 LIKE '
    $leistung_11'
                 AND leistung12 LIKE '
    $leistung_12'
                 ORDER BY anzeigentyp DESC plz ASC"

    da sind $leistung_1 - $löeistung_12
     

  8. #8
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    da sind $leistung_1 - $löeistung_12
    Sag ich doch. Wo ist Dein Problem?
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  9. #9
    Avatar von ultrasonic
    ultrasonic ultrasonic ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Ort
    Wiesbaden Germany
    Beiträge
    140
    wir reden aneinander vorbei
    ich meinte


    if (isset($leistung1))......
    ...
     

  10. #10
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Oh sorry .. habe meinen ersten Beitrag korrigiert.
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  11. #11
    medico medico ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Beiträge
    212
    Ahhhh genial es funktioniert....DANKE und ich habe solange ausprobiert....super


    Gruß Medico
     

Ähnliche Themen

  1. Probleme bei Suchfunktion mit Umlauten
    Von Herror im Forum PHP
    Antworten: 8
    Letzter Beitrag: 21.04.08, 19:29
  2. Probleme mit Suchfunktion
    Von schiese im Forum PHP
    Antworten: 4
    Letzter Beitrag: 20.10.05, 15:44
  3. PHP Suchfunktion! <probleme>
    Von picos im Forum PHP
    Antworten: 4
    Letzter Beitrag: 12.02.05, 20:20
  4. Probleme mit Suchfunktion
    Von nick im Forum PHP
    Antworten: 2
    Letzter Beitrag: 28.02.03, 13:11
  5. Probleme mit Suchfunktion in Mysql
    Von Shadow im Forum PHP
    Antworten: 5
    Letzter Beitrag: 11.10.02, 10:52