datenbankabfrage über php

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

  • datenbankabfrage über php

    hi,

    ich habe hier ein kleines problem wo ich nicht weiter weiß und hoffe daß mir jemand weiterhelfen kann.

    folgendes:

    über ein formular bekomme ich z.B. diese daten

    <select name="irgendetwas">
    <option value="egal" selected>egal</option>
    <option value="ja">ja</option>
    <option value="nein">nein</option>

    diese will ich abfragen:

    $result = mysql_query("SELECT * FROM $table WHERE irgendetwas = '$irgendetwas' ....

    das klappt ja auch solange man ja oder nein wählt. wählt man "egal" gibt es keine ergebnisse, was ja auch selbstverständlich ist.

    Was muß ich statt "egal" eingeben, dass er alles abfragt bzw. diese position dann ignoriert?

    vielen Dank für eure hilfe.

  • #2
    Re: datenbankabfrage über php

    Original geschrieben von e2000
    Was muß ich statt "egal" eingeben, dass er alles abfragt bzw. diese position dann ignoriert?
    Erstelle für diese Auswahl überhaupt keine einschränkende Bedingung in der WHERE-Klausel.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Wieso prüfst du nicht ob ja/nein gewählt wurde und hängst ggf.
      "where irgendwas='irgendwas'" an die query?
      MfG
      aim
      Lies mich jetzt!
      - OT-Tags-Liebhaber und BB-Code-Einrücker -

      Kommentar


      • #4
        ich bastel mir gerade einen konfigurator und will daß der kunde dann ein ergebniss nach seinen wünschen geliefert bekommt.

        dies ist nur eine von vielen positionen.

        also brauche ích diese einschränkung.

        Kommentar


        • #5
          über ein formular bekomme ich z.B. diese daten

          <select name="irgendetwas">
          <option value="egal" selected>egal</option>
          <option value="ja">ja</option>
          <option value="nein">nein</option>

          diese will ich abfragen:

          $result = mysql_query("SELECT * FROM $table WHERE irgendetwas = '$irgendetwas' ....
          du solltest nie die per Post oder get übergebenen Variablen in einem SQL-Statement dirket verwenden.

          Prüfe halt die werte in ner fall-abfrage und setze dann dein sql-statement zusammen.

          PHP-Code:

          switch ($irgendwas) {
          case 
          "ja":
             
          $mywhere "irgendetwas = 'ja'";
             break;
          case 
          "nein":
            
          $mywhere "irgendetwas = 'nein'";
             break;
          default:
           
          $mywhere "1 = 1";
          }

          $result mysql_query("SELECT * FROM $table WHERE $mywhere"); 
          habs schnell so eingetippt, kann sein dass da noch fehler drin sind, soll halt nur sinngemäß nen weh zeigen.....

          so stellt man auch sicher, dass nur die drei möglichkeiten, die du auch vorsiehst in das SQL-Statement kommen, und nicht irgendwelche beliebigen eingaben der GET oder POST - Variablen

          alles ungültige wird über das default: abgefangen

          Kommentar


          • #6
            vielen dank für die antwort. das ist meine lösung und so funktioniert es.

            danke noch einmal.

            Kommentar


            • #7
              sehr gut.

              wie gesagt, schau dass du nie variablen direkt in SQL-Staements übernimmst.

              wenn es sich nicht vermeiden lässt, solltest du sicher sein, dass die werte ausreichend geprüft werden!

              Kommentar

              Lädt...
              X