Datenbankabfrage über Form-Tag?

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

  • Datenbankabfrage über Form-Tag?

    Ich baue gerade an einem Script, was mit Hilfe von Radiobuttons aus einer Datenbank die Datensätze raussuchen soll.

    Nun habe ich nur folgendes Problem.

    Wenn ein Radiobutton gedrückt wird, wird ein 'ja' übergeben, ansonsten nichts.

    Wenn nichts übergeben wird, sollen sowohl die Datensätze mit 'ja' und die mit 'nein' ausgegeben werden.

    Wie kann ich das realisieren?

    Gedankenstütze: Man kann es sich wie auf einer Autosuchseite vorstellen. Wenn man die Klimaanlage anklickt werden nur die Autos mit Klimaanlage angezeigt. Wenn man nichts anklickt, werden Autos mit und ohne Klimaanlage angezeigt.

    So was will ich haben! Also helft mir bitte. Kleiner Quellcode der Abfrage wäre nett. Danke.

  • #2
    Wenn es bei dem einen Radiobutton bleibt ist das recht einfach :

    PHP-Code:
    if($submit)
        {
            
    $sql="Select wasweissich from tabelle1";
            
            if(!empty(
    $radiobutton1)) $sql.=" where klima='yes'";
            
            
    $query=@mysql_query($sql) or die ((mysql_error());
            
            ...
        } 
    Sobald die Variable radiobutton1 einen Wert hat, wird der Select-Befehl um den Zusatz where klima='yes' erweitert, hat die Variable keinen Wert, werden alle Tabelleneinträge ausgelesen, also mit und ohne Klima da keine Beschränkung durch WHERE vorliegt.
    Zuletzt geändert von ExInfernis; 08.07.2004, 00:37.

    Kommentar


    • #3
      Servus,

      ich nochmal.

      Falls du mehrere Radiobuttons benutzt, würde ich es so machen :

      PHP-Code:
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
      <head>
      <title>Unbenanntes Dokument</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      </head>

      <body>
      <?PHP
      if($submit)
          {
              
      $sql="Select wasweissich from tabelle1";
              
              if(!empty(
      $radiobutton1)) $zusatz[]=" wert1='yes'";
              
              if(!empty(
      $radiobutton2)) $zusatz[]=" wert2='yes'";
              
              if(!empty(
      $radiobutton3)) $zusatz[]=" wert3='yes'";
              
              if(!empty(
      $radiobutton4)) $zusatz[]=" wert4='yes'";
              
              if(
      sizeof($zusatz)>0$sql.=" WHERE";
              
              for(
      $i=0;$i<sizeof($zusatz);$i++)
                  {
                      if(
      $i>0$sql.=" AND"//Einfügen der Verknüpfung
                      
                      
      $sql.=" ".$zusatz[$i]; //Einfügen der Bedingungen
                      
                  
      }
                      
              echo 
      $sql// Ausgabe des erstellten SELECT-Befehls
                              
              
          
      }
      ?>
      <form action="test.php" method="post" name="form1" target="_parent">
        <table width="300" border="0" cellspacing="0" cellpadding="5">
          <tr> 
            <td><input type="radio" name="radiobutton1" value="1">
              Wert 1</td>
          </tr>
          <tr> 
            <td><input type="radio" name="radiobutton2" value="1">
              Wert 2</td>
          </tr>
          <tr> 
            <td><input type="radio" name="radiobutton3" value="1">
              Wert 3</td>
          </tr>
          <tr> 
            <td><input type="radio" name="radiobutton4" value="1">
              Wert 4</td>
          </tr>
          <tr>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td><input name="submit" type="submit" id="submit" value="Abschicken"></td>
          </tr>
        </table>

      </form>
      </body>
      </html>
      Kannst es mal komplett in eine Datei "test.php" kopieren und testen, nach dem Abschicken des Formulares wird dir der SELECT-Befehl ausgegeben.

      Kommentar


      • #4
        finde ich unübersichtlich warum nicht sowas in der Art:

        PHP-Code:
        ?>
        <form action="test.php" method="post" name="form1" target="_parent">
          <table width="300" border="0" cellspacing="0" cellpadding="5">
            <tr> 
              <td><input type="radio" name="radiobutton[]" value="1">
                Wert 1</td>
            </tr>
            <tr> 
              <td><input type="radio" name="radiobutton[]" value="1">
                Wert 2</td>
            </tr>
            <tr> 
              <td><input type="radio" name="radiobutton[]" value="1">
                Wert 3</td>
            </tr>
            
            <tr>
              <td><input name="submit" type="submit" id="submit" value="Abschicken"></td>
            </tr>
          </table>
        </form>
        <?
        //test.php

        foreach ($_POST['radiobutton'] as $var)  echo "doworking";
        Lass dir doch gleich ein Array übergeben.....
        [color=blue]MfG Payne_of_Death[/color]

        [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
        [color=red]Merke:[/color]
        [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

        Murphy`s Importanst LAWS
        Jede Lösung bringt nur neue Probleme
        Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
        In jedem kleinen Problem steckt ein großes, das gern raus moechte.

        Kommentar


        • #5
          Besten Dank ExInfernis.

          Habe deine 2. Variante mit mehreren Buttons noch etwas modifiziert und erfolgreich bei mir eingebaut.

          Also nochmal besten dank.

          Kommentar

          Lädt...
          X