Ankündigung

Einklappen
Keine Ankündigung bisher.

if abfrage in mysql?

Einklappen

Neue Werbung 2019

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

  • if abfrage in mysql?

    Ist es möglich in sql statements phpif abfragen einzubauen oder wie ist folgende problemstellung ansonsten zu lösen??

    Ich habe auf der ersten seite ein formular mit nur dropdowns!

    Dort kann mann di kriterien auswählen oder wenn einem ein kriterium egal ist es einfach auf "alle kriterien hiervon in die Suche inbeziehen" gehen

    So nun wird anhand der ausgewählten kriterien die DB durchsucht und die treffer ausgegeben .. habe ich einfach mit where gemacht!

    BSP:

    $result = mysql_query("SELECT * FROM `wohndb` WHERE `bundesland` = '".$_POST["bundesland"]."' AND `bezirk` = '".$_POST["bezirk"]."' AND `ort` = '".$_POST["ort"]."'");

    So wenn jetz talle drei dropdowns ausgefüllt werden funktioniert die sache ja aba wenn ein dropdown leergelassen wird verfälscht dass die Suche da kein Objekt mit 0 drinnen steht!

    Daher dachte ich kann ich etwas in der Art wie folgt machen:

    $result = mysql_query("SELECT * FROM `wohndb` WHERE if(isset($_POST["bundesland"])){`bundesland` = '".$_POST["bundesland"]."'}");

    Hmm geht aber nicht!

    Kann mir wer helfen??

    Mfg Amsel

  • #2
    Re: if abfrage in mysql?

    Zitat von Amsel
    Daher dachte ich kann ich etwas in der Art wie folgt machen:

    $result = mysql_query("SELECT * FROM `wohndb` WHERE if(isset($_POST["bundesland"])){`bundesland` = '".$_POST["bundesland"]."'}");
    Hmm geht aber nicht!
    Nein, weil IF ein Konstrukt ist.

    Code:
    $sql = "SELECT * FROM `wohndb`";
    
    if(isset($_POST["bundesland"])) 
       $sql .= ' WHERE `bundesland` = '".$_POST["bundesland"]."'";
    
    $result = mysql_query($sql);

    Kommentar


    • #3
      danke, dass funkt jetzt auch bei mir aber irgendwie sieht das unprofessionell aus!! Kann man dass nicht verkürzen oda so?

      Weil bei mir siehts nun so aus!

      $sql = "SELECT * FROM `wohndb`";
      if($_POST["bundesland"] > 0){
      $sql .= " Where `bundesland` = '".$_POST["bundesland"]."'";
      }
      if(!is_numeric($_POST["bezirk"])){
      $sql .= " AND `bezirk` = '".$_POST["bezirk"]."'";
      }
      if(!is_numeric($_POST["ort"])){
      $sql .= " AND `ort` = '".$_POST["ort"]."'";
      }
      if($_POST["personen"] > 0){
      $sql .= " AND `personen` = '".$_POST["personen"]."'";
      }
      if($_POST["maxpreis"] > 0){
      $sql .= " AND `preis` < '".$_POST["maxpreis"]."'";
      }
      if($_POST["objekttyp"] > 0){
      $sql .= " AND `objekttyp` = '".$_POST["objekttyp"]."'";
      }
      if($_POST["haustier"] > 0){
      $sql .= " AND `haustier` = '".$_POST["haustier"]."'";
      }
      if($_POST["tv"] > 0){
      $sql .= " AND `tv` = '".$_POST["tv"]."'";
      }
      if($_POST["kamin"] > 0){
      $sql .= " AND `kamin` = '".$_POST["kamin"]."'";
      }
      if($_POST["waschmaschine"] > 0){
      $sql .= " AND `waschmaschine` = '".$_POST["waschmaschine"]."'";
      }
      if($_POST["spuelmaschine"] > 0){
      $sql .= " AND `spuelmaschine` = '".$_POST["spuelmaschine"]."'";
      }
      if($_POST["mikrowelle"] > 0){
      $sql .= " AND `mikrowelle` = '".$_POST["mikrowelle"]."'";
      }
      $result = mysql_query($sql);

      Mfg Amsel

      Kommentar


      • #4
        Zitat von Amsel
        danke, dass funkt jetzt auch bei mir aber irgendwie sieht das unprofessionell aus!! Kann man dass nicht verkürzen oda so?
        Nein, weil Du die Formularvariablen eh prüfen mußt. Allerdings hat Dein Script einen Fehler. Wenn $_POST["bundesland"] leer ist, gibt es einen SQL Fehler, wenn eine der anderen Variablen trotzdem angehängt werden.

        btw: bitte benutze die [ code ] Tags.

        Kommentar


        • #5
          jo den fehler weiss ich schon .. habs aber so gemacht dass bundesland als einziges nicht leer stehen darf!

          Aba danke!

          Mfg Amsel

          Kommentar

          Lädt...
          X