where Abfrage bitte DENKANSTOSS

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

  • where Abfrage bitte DENKANSTOSS

    Ich übergebe aus einem Formular 4 Werte (select Felder)

    z.B.

    Array
    (
    [systemwaende] => F
    [kundenkategorie] => A
    [vertreter] => Büro
    [kw2] => 12/06
    )

    oder auch

    Array
    (
    [systemwaende] =>
    [kundenkategorie] => D
    [vertreter] => Büro
    [kw2] =>

    )

    es sind aber auch noch andere Kombis möglich.

    Da ich diese Variablen in den where Bereich der Sql Abfrage mit
    einbeziehen möchte bitte ich um einen kleinen Denkanstoss
    wie man das am besten macht.

    Wenn ich alle immer mit

    PHP-Code:
    where waende like $systemwaende and kunden like 
    $kundenkategorie 
    and ..... 
    abfrage bekomme ich immer leere Ergebniss zurück.
    Logisch weil DB-Spalte nicht leer.

    Danke
    Vielen Dank

  • #2
    Prüfe vor deiner Abfrage, ob die entsprechende Variable gesetzt (und mit einem validen Wert befüllt) ist und erweitere dann die Abfrage entsprechend.
    Abhängig von deiner Datenbankstruktur brauchst du dann noch nichtmal "Like", sondern kannst mit "=" arbeiten ...

    Kommentar


    • #3
      1. die Formularfelder genauso wie die Spaltennamen benennen
      2. per foreach das $_POST-Array durchlaufen, auf Inhalt prüfen und entsprechend zusammensetzen

      Kommentar


      • #4
        Danke für die Tipps, werde es mal versuchen.

        Vielen Dank
        Vielen Dank

        Kommentar


        • #5
          Gelöst, vielleicht nicht wie ihr meintet aber es klappt.

          PHP-Code:
          $abfrage "where KUNDE.ADRINR = ADRESSE.NUMMER";

          if (isset(
          $systemwaende) AND $systemwaende != "")
                      
              {
              
          $abfrage .= " and FLD06 = '$systemwaende'";
              }

          if (isset(
          $kundenkategorie) AND $kundenkategorie != "")
                                  
              {
              
          $abfrage .= " and FLD10 = '$kundenkategorie'";
              }
                                          
          if (isset(
          $vertreter) AND $vertreter != "")
                                          
              {
              
          $abfrage .= " and VERTRETER = '$vertreter'";
              }
                                                                  
          if (isset(
          $kw2) AND $kw2 != "")
                                          
              {
              
          $abfrage .= " and FLD07 = '$kw2'";
              }


          // Teil der Abfrage

          $result mysql_query("select from ... $abfrage"); 
          Vielen Dank
          Vielen Dank

          Kommentar


          • #6
            Schick ... bis auf das mit dem Validieren ist deine Lösung meinem Vorschlag gar nicht mal so unähnlich
            Jetzt hoffe ich mal, dass dein DB-Layer die Validierung übernimmt, sonst ist dieses Script anfällig für SQL-Injection.

            Kommentar


            • #7
              Da das ganze nur intern bei mir läuft geht es eigentlich mit der
              Sicherheit habe mich deshalb damit weiter noch nicht so befasst.

              Der User der zur DB connected darf auch nur select ausführen, reicht das nicht?
              Vielen Dank

              Kommentar


              • #8
                Original geschrieben von netleader
                Der User der zur DB connected darf auch nur select ausführen, reicht das nicht?
                Ok, das sollte reichen

                Kommentar

                Lädt...
                X