Ankündigung

Einklappen
Keine Ankündigung bisher.

Checkboxen und MySQL

Einklappen

Neue Werbung 2019

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

  • Checkboxen und MySQL

    Ich habe vor durch ein Formular mittels Checkboxen Antworten in eine Tabelle einzutragen. Hier erstmal der Code:

    Code:
    <?php 
    $name = $_POST['name'];
    $termin1 = $_POST['termin1'];
    $termin2 = $_POST['termin2'];
    $termin3 = $_POST['termin3'];
    $termin4 = $_POST['termin4'];
    
    
    if ($name == "" )
    
    { 
    echo "Bitte deinen Namen eingeben!";
    exit;
    }
    
    if ($termin1 == NULL && $termin2 == NULL && $termin3 == NULL && $termin4 == NULL)
    {
    	echo "Bitte etwas ausw&auml;hlen!";
    	exit;
    }
          
    
    	  if ($termin1==1)
    	  { 
    	  $termin1 = 1 ; 
    
    
    mysql_query("INSERT INTO
     umfrage(name,antwortid1)VALUES('$name','$termin1')");
     mysql_close();
    
    echo "Erfolgreich abgesendet!!!";
    }
    	 
    	 
    	 elseif ($termin1==NULL)
    	  
    	  {
    		  $termin1 = 0 ;
    		  mysql_query("INSERT INTO
     umfrage(name,antwortid1)VALUES('$name','$termin1')");
     mysql_close();
    	  }
    	  
    	  
    	  
    	  if ($termin2==2)
    	  { 
    	  $termin2 = 1 ; 
    
    
    mysql_query("INSERT INTO
     umfrage(name,antwortid2)VALUES('$name','$termin1')");
     mysql_close();
    
    echo "Erfolgreich abgesendet!!!";
    
    	  }
    	  elseif ($termin2==NULL)
    	  {
    		  $termin2 = 0 ;
    		  mysql_query("INSERT INTO
     umfrage(name,antwortid2)VALUES('$name','$termin2')");
     mysql_close();
    	  echo "Erfolgreich abgesendet!!!";
    	  }
    	  
    	  	
    		
    		if ($termin3==3)
    	  { 
    	  $termin3 = 1 ; 
    
    
    mysql_query("INSERT INTO
     umfrage(name,antwortid3)VALUES('$name','$termin3')");
     mysql_close();
    
    echo "Erfolgreich abgesendet!!!";
    
    	  }
    	  elseif ($termin3==NULL)
    	  {
    		  $termin3 = 0 ;
    		  mysql_query("INSERT INTO
     umfrage(name,antwortid3)VALUES('$name','$termin3')");
     mysql_close();
    	  echo "Erfolgreich abgesendet!!!";
    	  }
    	  
    	  
    	  
    	  if ($termin4==4)
    	  { 
    	  $termin4 = 1 ; 
    
    
    mysql_query("INSERT INTO
     umfrage(name,antwortid4)VALUES('$name','$termin4')");
     mysql_close();
    
    echo "Erfolgreich abgesendet!!!";
    
    	  }
    	  elseif ($termin4==NULL)
    	  {
    		  $termin4 = 0 ;
    		  mysql_query("INSERT INTO
     umfrage(name,antwortid4)VALUES('$name','$termin4')");
     mysql_close();
    	  echo "Erfolgreich abgesendet!!!";
    	  }
    Vorher wurde natürlich schon zur Datenbank connectet.
    Jedoch habe ich jetzt ein Problem, dass in jedem Feld (antwortid1-antwortid4) immer nur 0 eingetragen wird. Das heißt es wird immer der elseif-Block ausgeführt. Wie kann ich das ändern?


  • #2
    PHP-Code:
    echo '<pre>' var_export($_POSTtrue) . '</pre>'
    Damit kannst du schauen welche Werte tatsächlich an das Script übergeben wurden.
    Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

    Kommentar


    • #3
      Hmm gut also es werden immer die richtigen Werte übergeben, aber es wird immer nur ein Eintrag in die Tabelle gemacht, auch wenn ich 2 Checkboxen auswähle.

      Kommentar


      • #4
        Zitat von Peter1232 Beitrag anzeigen
        ... aber es wird immer nur ein Eintrag in die Tabelle gemacht, ...
        Vielleicht weil du nach diesem einen Eintrag sofort die Datenbankverbindung zu machst.
        Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

        Kommentar


        • #5
          Du machst einen Eintrag mit mysql_query, schließt dann die Verbindung zur Datenbank - und willst dann anschließend wieder mysql_query benutzen ...

          Und weil du nicht mal ansatzweise sinnvolle Fehlerbehandlung betreibst, fällt dir dieser Logikfehler nicht mal auf


          Und sowas
          PHP-Code:
                if ($termin1==1)
                { 
                
          $termin1 
          ist auch ziemlicher Unfug.

          Kommentar


          • #6
            Zitat von Peter1232 Beitrag anzeigen
            Hmm gut also es werden immer die richtigen Werte übergeben, aber es wird immer nur ein Eintrag in die Tabelle gemacht, auch wenn ich 2 Checkboxen auswähle.
            Erstmal ein paar grundlegende Sachen...

            1. Rücke den Code ordentlich ein
            2. Benutze PHP-BBTags
            3. Formulier dien Problem exakt, zuerst sagst du es wird immer der elseif ausgeführt und nun heißt es wir dimmer nur 1 Eintrag angelegt. Was stimmt denn nun?
            4. http://www.php.de/php-einsteiger/489...nsammlung.html Weisst du was Variablen sind? Deine if elseif Konstrukte sind so ziemlich sinnlos. Du könntest die Zahlwerte auch direkt in die Queries schrieben...
            "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

            Kommentar


            • #7
              5. Lerne, wie man Arrays und Schleifen benutzt - dann brauchst du nicht x mal Code hinschreiben, wenn du x mal fast das gleiche, nur mit anderen Werten, machen willst.

              Kommentar

              Lädt...
              X