MySql-Abfrage mit leerer Variablen

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

  • MySql-Abfrage mit leerer Variablen

    Hallo,

    Ich mache eine Suchabfrage in MySql, mit der Option

    WHERE `Feldwert` = '$variable'

    Wenn meine $variable = ""; ist, sollen alle Datensätze angezeigt werden, egal welchen Inhalt `Feldwert ` hat.

    Kann mir einer verraten wie das geht?

    Danke callt

  • #2
    abhängig von $variable fügst du WHERE in Select-Statement ein oder nicht,
    etwa

    PHP-Code:
    $strWhere "";
    if (isset(
    $variable) && !empty($varriable)) $strWhere "wahteveryouwant";

    $sql "select ... from ... $strWhere"

    Kommentar


    • #3
      Also ich würde den Query einfach abhängig von $variable zusammenbasteln lassen ... so in etwa:

      PHP-Code:
      $query "SELECT * FROM tabelle";
      if(!empty(
      $variable)) {
           
      $query .= " WHERE `Feldwert` = '$variable'"

      [color=red]Geht nicht[/color] ist keine Fehlermeldung

      Kommentar


      • #4
        Tschuldigung, ich habe mich falsch ausgedrückt.

        Ich meinte ,

        1. wenn `Feldwert` = "" und $variable = ''
        Datensatz soll ausgegeben werden

        2. wenn `Feldwert` != "" und $variable = ''
        Datensatz soll ausgegeben werden

        3. wenn `Feldwert` = "" und $variable != ''
        Datensatz soll nicht ausgegeben werden

        Kommentar


        • #5
          deine drei Fälle werden doch von unseren Vorschlägen abgedeckt:

          PHP-Code:
          $query "SELECT * FROM tabelle";

          if(!empty(
          $variable)) {
               
          $query .= " WHERE `Feldwert` = '$variable'"

          Fall 1+2:
          $variable ist leer -> WHERE-clause wird nicht angehängt -> Datensatz wird ausgegeben, egal ob er der Feldwert leer ist oder nicht

          Fall 3:
          $variable hat Wert -> WHERE-clause wird angehängt -> Datensatz wird nur ausgegeben, wenn Feldwert = $variable -> wenn der Feldwert leer ist, wird der Datensatz auch nicht ausgegeben
          [color=red]Geht nicht[/color] ist keine Fehlermeldung

          Kommentar


          • #6
            Ich glaube, dann muß ich noch mal in mein Handbuch nachsehen,

            Sollte es nicht heißen

            $query = mysql_query ("SELECT * FROM tabelle");

            statt

            $query = "SELECT * FROM tabelle";

            und wenn, so lässt sich doch das Array '$query' nicht mit '$query .='
            fortsetzen, wie bei einer String-Variablen.

            Könnt Ihr mir den Code eventuell genauer zeigen?

            Danke nochmal callt

            Kommentar


            • #7
              in meinem Beispiel is $query nichts weiter als ein String ... sorry, hab den Namen doof gewählt .. so wirds vielleicht klarer:

              PHP-Code:
              $sql "SELECT * FROM tabelle";
              if(!empty(
              $variable)) {
                   
              $sql .= " WHERE `Feldwert` = '$variable'"
              }
              $query mysql_query($sql); 
              [color=red]Geht nicht[/color] ist keine Fehlermeldung

              Kommentar


              • #8
                Original geschrieben von callt
                Ich glaube, dann muß ich noch mal in mein Handbuch nachsehen,

                Sollte es nicht heißen

                $query = mysql_query ("SELECT * FROM tabelle");

                statt

                $query = "SELECT * FROM tabelle";

                und wenn, so lässt sich doch das Array '$query' nicht mit '$query .='
                fortsetzen, wie bei einer String-Variablen.

                Könnt Ihr mir den Code eventuell genauer zeigen?

                Danke nochmal callt
                Oh Gott, wie kann man denn ...

                es sind nur VARIABLEN man kann einem $father Variable den Inhalt von
                mother zuweisen, wo ist denn das Problem? Ich kann $query auch was
                ganz Anderes zuweisen. Man soll natürlich Variablennamen nach Ihrer Funktion
                sinnvoll benennen. Aber im Forum hier geht es ja nicht darum irgendwelche
                Regel oder Konventionen von Variablenbennenungen einzuhalten, sondern
                es geht um Lösungen bzw. Lösungsvorschläge und daher ist es piep egal
                wie die Variablen alle heissen.

                So, nun bin ich wieder happy

                Kommentar


                • #9
                  @ callt

                  du kannst auch mit sogenannten wildcards (platzhaltern) arbeiten
                  PHP-Code:
                  if (!$variable$variable '%';
                  $query mysql_query("SELECT * FROM tabelle where feldname LIKE '$variable'"); 
                  ist übrigens genau das selbe wie
                  PHP-Code:
                  if (!$variable$variable '%';
                  $sql "SELECT * FROM tabelle where feldname LIKE '$variable'";
                  $query mysql_query($sql); 
                  gruss
                  peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar


                  • #10
                    Danke

                    Der letzte thread von Big Chief hat mir geholfen.

                    callt

                    Kommentar

                    Lädt...
                    X