if abfrage mysql problem ...

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

  • if abfrage mysql problem ...

    Hi,

    erstmal sry das die überschrift so missraten ist aber mir ist leider kein anderer Betreff eingefallen ...

    und zwar gehts um folgendes problem :

    ich habe mehrere variablen (daten) -> diese sollen nun mithilfe einer mysql_query daten aus der db holen ...

    doch haben diese daten einen besonderen einfluss auf den abfrage string und zwar -> ist bei einigen dieser variablen der wert auch nicht vorhanden bzw. für alle möglichen daten zutreffend ... ein beispiel :


    PHP-Code:
    <?php


    //der nachfolgende code ist kein ernst zu nehmender php code sondern (mysql injection usw. möglich )
    //nur zum beschreiben des problems gedacht ...

    //erst wird ein belibieger wert geholt ...
    $blub $_GET['blub'];


    //Hier wird die variable eingefügt - daher meine frage gibt es eine mysql
    //funktion mit der man einen standard wert festlegen kann falls die
    //variable leer ist oder sonst einen wert hat
    //sodass man nicht immer if abfragen in php machen muss ...
    $mysql_abfrage_string "SELECT * FROM table WHERE bla = '".$blub."' ";

    ...
    ?>
    EDIT:

    noch ein praktisches beispiel :

    ich habe ein option feld mit verschiedenen werten drinn - und jetz habe ich auch einen wert der heisst 'egal' - und wenn egal gewählt wurde soll er in der obigen abfrage mithilfe einer mysql funktion dieses WHERE so umwandeln das alle gesucht werden ...



    ich hoffe ich werde verstanden - falls nicht egal

    greetz subabrain !
    Zuletzt geändert von subabrain; 21.03.2006, 12:05.

  • #2
    kann mir mal einer sagen - ob das :

    http://dev.mysql.com/doc/refman/4.0/...functions.html

    auch bei WHERE geht ?


    thx !


    greetz subabrain !

    Kommentar


    • #3
      PHP-Code:
      // Idee:
      'select * from table 
         where isset($blub) AND ( (bla = $blub) or ($blub='
      egal') );' 

      // real weil isset in sql nicht geht
      $blub=$_GET('blub');
      $isset = isset($blub);
      'select * from table 
         where '
      $isset' AND ( (bla = '$blub') or ('$blub'='egal')) ;' 
      PS mir gefällt syntax coloring. Welchen free multifile editor empfehlt ihr mir? (multifile = mehrere scripts offen, save_all, und Suchfunktion über einen ganzen Ordner)

      Kommentar


      • #4
        hi,

        danke für deine antworten ... werds mal versuchen ... falls nicht habe gerade ne elegante variante mit php gefunden ... danke !

        PS : ich würde nach dem editor in einem anderen thread fragen ^^ - aber kennen tu ich leider keinen


        thx + greetz subabrain !

        Kommentar


        • #5
          mysql Control Flow functions gehen zweifelsohne bei WHERE auch, sonst würde im Manual eine Einschränkung stehen. Sie sind aber hier nicht sinnvoll, weil die Tests nicht auf Datenfelder, sondern auf php Variabeln/Optionen gehen müssen.


          PS und weil im WHERE geht es einfacher mit AND und OR, weil das Ergebnis sowieso boolean sein muss. Control Flow is sinnvoll für Fälle wie

          PHP-Code:
          //SQL:
          IF (************='m''PAPA''MAMA') as Anrede

          Kommentar


          • #6
            hi ,

            ok alles klar. .. werde es dann so machen wie du als erstes geschrieben hast - da meine php lösung zu aufwendig wäre ... vielen dank !!!


            gruß - subabrain !

            Kommentar


            • #7
              Beachte bitte noch, dass meine Syntax nicht fertiges PHP ist, sondern der Idee nach, zB $isset muss sich am Schluss auf $_GET['blub'] beziehen, man muss isset($_GET['blub']) überprüfen usw.

              Frage ist noch was Du ausgeben willst, wenn er kein blub=... angegeben hat. Ich habe mal angenommen, dass dann nichts ausgegeben wird, im Sinne von SELECT ... WHERE 'false';

              Kommentar

              Lädt...
              X