mit checkboxen SELECT Abfrage generieren

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

  • mit checkboxen SELECT Abfrage generieren

    Hallo zusammen,

    ich habe ein Formular mit 10 checkboxen. Sie generieren mit foreach-Schleifen einen SELECT-String je nach Auswahl. Der String ist immer korrekt. Wie krieg ich ihn als Variable (z.B. $suche) in die mysql_query Anweisung? Ich habe die Abfrage von extern mit $suche = include("abfrage.php") versucht, wobei dann aber bei return $suche; die Variable $suche immer den Standardwert 1 hat. Mein Problem ist, daß ich einen mit Schleifen dynamisch generierten String einer Variablen zuweisen möchte.
    Habe ich mich vielleicht verlaufen?

    Vielen Dank für Eure Hilfe

    Don

  • #2
    mit deiner beschreibung hast du die verlaufen....

    gib mal mehr infos. ein wenig code. was jetzt ist, und wie es werden soll.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      checkboxen-namen sind art und suche.

      Hier sind die wesentlichen Auszüge aus den Scripts

      abfrage.php4

      <?php echo "SELECT * FROM basis WHERE ";
      foreach ($art as $elem) { echo "art","= '","$elem"; echo "' OR "; }
      foreach ($suche as $elem1) { echo "inst","= '","$elem1"; echo "' OR "; }
      echo " inst= 'fellini' GROUP BY 'datum'";
      ?>

      tabelle.php4

      $ergebnis=mysql_query($sql <<hier soll der String von oben rein,$link);
      while($row = mysql_fetch_array($ergebnis))
      {
      ---echo tabellencode---


      sqlreturn.php4

      Und hiermit bekomme ich mit $sql immer nur 1

      <?php
      $sql = include("abfrage.php4");
      return $sql;
      ?>

      ...reicht Dir das?

      Danke

      Don

      Kommentar


      • #4
        Du weißt aber schon das es außer foreach und echo auch noch andere Sprachkonstrukte in PHP gibt??

        mit $variable = "SELECT * FROM wurst";
        weist man einer $variablen z. B. eine Zeichenkette zu ...

        mit $variable .= "art='$elem' ";
        kann man an eine $variable (die bereits eine Zeichenkette enthält) eine weitere Zeichenkette anhängen ...
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Ok, aber ich weiß ja vorher noch nicht, wieviele und welche Zeichenketten ich aneinanderhängen werde. Das wird jeweils von Anzahl und Namen der gecheckten Checkboxen bestimmt. Und die habe ich mit foreach ermittelt.
          Deshalb möchte ich das Ergebnis aus foreach in eine Variable stecken, wenn das geht.

          Don

          Kommentar


          • #6
            Ach ja, ich vergaß, die Checkbox-Namen sind natürlich suche[] und art[]

            Kommentar


            • #7
              Mach doch sowas:
              PHP-Code:
              <?php
              $whereclause 
              "";
              foreach (
              $art as $elem$whereclause .= ( $whereclause == "" "" " OR " )."art = '$elem'";
              foreach (
              $suche as $elem1$whereclause .= ( $whereclause == "" "" " OR " )."inst = '$elem1'";
              $whereclause .= ( $whereclause == "" "" " OR " )."inst = 'fellini'";
              $sql "SELECT * FROM basis".( $whereclause "" "" " WHERE ".$whereclause )." GROUP BY datum";
              ?>
              ( Beispiel nicht getestet ... )
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                ...hm...ich teste...

                Danke

                Don

                Kommentar


                • #9
                  irgendwie nicht so ganz...mit meinem Code entsteht z.B. bei einer bestimmten Kombination gecheckter Boxen:

                  SELECT * FROM basis WHERE art= 'alleart' OR inst= 'alle' OR inst= 'fellini' GROUP BY 'datum'

                  Don

                  Kommentar


                  • #10
                    Halt stop...bei Deinem Code ist das Ergebnis dasselbe, aber wenn ich mit

                    $ergebnis=mysql_query($sql,$link);

                    die Datenbankabfrage starte, erscheint bei mir nur der String auf einer leeren Seite und nicht das Ergebnis der Abfrage

                    Schau mal auf http://havalook.de

                    Danke

                    Don

                    Kommentar


                    • #11
                      ICH HAB'S...

                      Fehler in der Datenbank...mann bin ich blind !


                      Aber vielen Dank für Deine Hilfe

                      Gruß und Gute Nacht

                      Don

                      Kommentar


                      • #12
                        Du hast 'nen Schreibfehler drin ... es muß heißen "van Goth" ... und nicht "van Gogh" ...
                        carpe noctem

                        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                        Kommentar


                        • #13
                          ...na na na, wer wird so früh schon wieder an der Kiste sitzen ???
                          Soll man das tun ? (Ohren lang zieh) Man verdirbt sich nur die Augen !

                          Im Ernst, jetzt geht's erst richtig los mit dem Script...aber es macht ja Spaß

                          Don

                          Kommentar


                          • #14
                            was du evtl. noch einbauen solltest (abfrage per javascript vielleicht?):

                            es macht wenig sinn, die checkbox 'alle' angekreuzt zu lassen, wenn man gleichzeitig einen anderen speziellen punkt auswählt.

                            also entweder würde ich dann per javascript die 'alle'-checkbox wieder deaktivieren.

                            oder halt im script prüfen, wenn 'alle' aktiviert, dann andere werte gar nicht mehr berücksichtigen. (weiss nicht, ob dein script das schon macht?)
                            ansonsten wird nämlich deine abfrage u.U. zu kompliziert, bzw. unperformant.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Danke, ich frage im Script schon 'alle' speziell ab, aber Du hast Recht, es ist wenig elegant, bei gecheckter 'alle' die Eingrenzung zuzulassen.

                              Don

                              Kommentar

                              Lädt...
                              X