Suchabfrage Anfänger

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Suchabfrage Anfänger

    Hallo Leute,

    kann mir jemand an meinem konkreten Beispiel sagen was ich anstellen muss, damit die Werte die der User in meinem Suchformular angibt auch zu einem Ergebnis führen. Ich habe diese Frage zwar schon mal gestellt, kann aber da ich noch nicht so viel mit php gemacht habe mit den angegebenen Tips noch nichts anfangen. Deshalb nochmal: Der User hat die Möglichkeit bis zu 6 Felder zu besetzen. Wenn ich die nun mit AND verknüpfe erhalte ich aber keine Datensätze weil in der MySql-DB in den Feldern etwas steht, die der User aber leer gelassen hat. Ich weiss zwar, dass ich wohl zunächst die Felder abfragen muss ob denn auch etwas vom User eingegeben wurde und diese dann in eine Variable schreiben muss mit deren Hilfe dann die Abfrage generiert wird (theoretisch also klar aber an der umsetzung scheiterts). Kann mir jemand an meinem konkreten Beispiel weiterhelfen????

    Bisher sieht die Abfrage so aus:

    {
    $abfrage="SELECT * FROM anzeigen WHERE anz_plz='$plz' AND anz_ort='$ort' AND anz_kategorie='$kategorie' AND anz_preiskat='$preiskat' AND anz_livemusik='$livemusik' AND anz_kueche='$kueche' AND anz_freizeit='$freizeit' AND anz_rubrik='$rubrik' ORDER BY anz_datum DESC";
    }

    Im Voraus schon mal Danke für Eure Hilfe.

    Martin

  • #2
    Original geschrieben von mrhappiness
    PHP-Code:
    $where='';
    if (isset(
    $_POST['wert']))
       
    $where.="wert='".$_POST['wert']."' AND ";
    //das für jedes Feld

    $where=substr($where,0,strlen($where)-4)); 
    is das so schwer zu verstehen?.
    Angepasst für deinen Fall:
    PHP-Code:
    $where='';
    if (isset(
    $_POST['anz_plz']))
       
    $where.="anz_plz='".$_POST['anz_plz']."' AND ";
    if (isset(
    $_POST['anz_ort']))
       
    $where.="anz_ort='".$_POST['anz_ort']."' AND ";
    ... 
    //alle deine Felder
    if (isset($_POST['anz_rubrik']))
       
    $where.="anz_rubrik='".$_POST['anz_rubrik']."' AND ";
    $where=substr($where,0,strlen($where)-4);
    $abfrage="SELECT * FROM anzeigen WHERE $where ORDER BY anz_datum DESC"
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Vielen Dank für Deine Hilfe. Habe das Script wie folgt angepasst, nun erscheint noch folgende Fehlermeldung:

      You have an error in your SQL syntax near 'ORDER BY anz_datum DESC'

      Kommentar


      • #4
        *VERSCHIEB*

        Langsam solltest du doch Routine haben

        Kommentar


        • #5
          was steht denn in $abfrage drinn?
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            $abfrage="SELECT * FROM anzeigen WHERE $where ORDER BY anz_datum DESC";

            Kommentar


            • #7
              Original geschrieben von mrhappiness
              was steht denn in $abfrage drinn?
              meint folgendes:
              - füge er diese zeile in sein skript ein
              PHP-Code:
              echo '---'.$abfrage.'---'
              - führe er das skript aus
              - kopiere er den Teil zwischen den '---'
              - klicke er hier auf "Antworten"
              - füge er den kopierten text ein

              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Hab '$where' abgeändert, jetzterscheint zwar keine Fehlermeldung mehr, aber die Daten werden dennoch nicht ausgeworfen

                Kommentar


                • #9
                  s.o.
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    habs wieder zurückgeändert und wie Du gesagt hast den code eingefügt. Es erscheint

                    ---SELECT * FROM anzeigen WHERE ORDER BY anz_datum DESC---You have an error in your SQL syntax near 'ORDER BY anz_datum DESC' at line 1

                    Kommentar


                    • #11
                      poste mal alles zwischen $where=''; und echo '---'.$ausgabe.'---';
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        $where='';

                        if (isset($_POST['anz_plz']))

                        $where.="anz_plz='".$_POST['anz_plz']."' AND ";

                        if (isset($_POST['anz_ort']))

                        $where.="anz_ort='".$_POST['anz_ort']."' AND ";

                        if (isset($_POST['anz_kategorie']))

                        $where.="anz_kategorie='".$_POST['anz_kategorie']."' AND ";

                        if (isset($_POST['anz_preiskat']))

                        $where.="anz_preiskat='".$_POST['anz_preiskat']."' AND ";

                        if (isset($_POST['anz_livemusik']))

                        $where.="anz_livemusik='".$_POST['anz_livemusik']."' AND ";

                        if (isset($_POST['anz_kueche']))

                        $where.="anz_kueche='".$_POST['anz_kueche']."' AND ";

                        if (isset($_POST['anz_freizeit']))

                        $where.="anz_freizeit='".$_POST['anz_freizeit']."' AND ";

                        if (isset($_POST['anz_rubrik']))

                        $where.="anz_rubrik='".$_POST['anz_rubrik']."' AND ";

                        $where=substr($where,0,strlen($where)-4);

                        $abfrage="SELECT * FROM anzeigen WHERE $where ORDER BY anz_datum DESC";

                        echo '---'.$abfrage.'---';

                        $ergebnis=mysql_query($abfrage) or die(mysql_error());

                        Kommentar


                        • #13
                          beim nächsten mal bitte in php-tags ok? (liest sich um längen besser)

                          mir is grad was gedämmert: mach mal
                          PHP-Code:
                          echo '$_POST:<br />';
                          print_r($_POST);
                          echo 
                          '<hr />$HTTP_POST_VARS:<br />';
                          print_r($HTTP_POST_VARS); 
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            wohin das ganze?

                            Kommentar


                            • #15
                              am besten an den anfang des skripts
                              Ich denke, also bin ich. - Einige sind trotzdem...

                              Kommentar

                              Lädt...
                              X