Ankündigung

Einklappen
Keine Ankündigung bisher.

Checkbox an MySQL

Einklappen

Neue Werbung 2019

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

  • Checkbox an MySQL

    Erstmal ein Hallo an alle,

    ich habe eine Frage zur Checkbox.
    Bekomme die nicht in MySQL eingetragen... Das heißt es sollen 1, 2 oder 3 Optionen angeklickt werden können.
    In der Datenbank landet jedoch gar nichts.
    Muß ich in der MySQL-Tabelle 1 Spalte einfügen für die Variable Hobby oder 3 Spalten für die Parameter Segeln, Schwimmen, Laufen ?

    Wäre toll wenn mir jemand beim Code helfen könnte.
    Ich brauche nicht ein komplettes Formular, hab ich schon. Nur den Code um die Checkboxwerte in die Tabelle einzutragen.

    Danke und viele Grüße, Tom.


    <p>Bitte nennen Sie Ihr Hobby</p>
    <p><input type="checkbox" name='segeln' value='" . $hobby . "' />Segeln</p>
    <p><input type="checkbox" name='schwimmen' value='" . $hobby . "' />Schwimmen</p>
    <p><input type="checkbox" name='laufen' value='" . $hobby . "' />Laufen</p>

  • #2
    [MOD] Beim Posten von Quellcode oder strukturierten Daten bitte bbCode verwenden ([php] für PHP, [html] für HTML, [code] für den Rest (Dumps, Queries..)) und Code geeignet einrücken.

    Muß ich in der MySQL-Tabelle 1 Spalte einfügen für die Variable Hobby oder 3 Spalten für die Parameter Segeln, Schwimmen, Laufen ?
    Das kommt drauf an.

    Kommentar


    • #3
      Die Checkboxerte bekommst Du in $_POST mitgeteilt, daraus baust Du eine UPDATE-Anweisung (http://dev.mysql.com/doc/refman/5.1/de/update.html)

      Für die Sportarten baust Du am Besten eine separate Tabelle, in der nur die User-Id und die Sportart-Id stehen. Die Sportarten speicherst Du in einer kleinen Vorratstabelle.
      Die 3 Tabellen werden per JOIN miteinander abgefragt.

      Kommentar


      • #4
        Hallo Nikosch,

        danke erstmal.
        Werde beim nächsten mal drauf achten.
        Worauf kommt es an ?
        Ich möchte das der User also aus der Checkbox auswählen kann wenn er sich registriert.
        Hinterher können User die interessen suchen und danach soll die Datenbank die Daten wieder ausspucken.
        Benutzername, Passwort, Wohnort per Radiobutton funktioniert alles bei dem Registrierungsformular und wird auch schön in die Datenbank eingegeben.
        Nur bei der Checkbox kommt nix an .
        Tom

        Kommentar


        • #5
          Es wird nur dann der Value einer Checkbox übertragen, wenn diese angeklickt ist.
          Man kann keine Checkbox in die DB eintragen, sondern nur den Value.

          Beispiel:
          PHP-Code:
          <input type="checkbox" name="foo" value="bar"
          dann steht in deinem $_POST-Array (wenn du das Formular mit POST überträgst)
          im Schlüssel "foo" der Wert "bar". Diesen Wert kannst du in die DB schreiben.

          Kommentar


          • #6
            ok.
            Vom Prinzip klar das nur übetragen werden soll was angeklickt ist.
            Nur egal was ich schreibe es kommt nix an in der Tabelle.
            Bei der Radiobox klappt es: Hier mal der Code:
            <p>
            <label>Geschlecht:
            <br>
            <select name='geschlecht'>
            <option name='weiblich' value='weiblich' " . $geschlecht . " selected='selected'>weiblich</option>
            <option name='männlich' value='männlich' " . $geschlecht . ">männlich</option>
            </select>
            </label>
            </p>



            PHP-Code:

             
            // Registrierungsformular
             
            $geschlecht = isset($_POST["geschlecht"]) ? $_POST["geschlecht"] : "";
             
             
              
            // ... Benutzer eintragen 
                
            $sql "INSERT INTO `" $TBL_NAME "`
                SET
             
              `geschlecht`          = '" 
            $geschlecht "',

            Aber für die Checkbox krieg ich das nicht zusammen..... 

            Kommentar


            • #7
              Zitat von miracolix90 Beitrag anzeigen
              Muß ich in der MySQL-Tabelle 1 Spalte einfügen für die Variable Hobby oder 3 Spalten für die Parameter Segeln, Schwimmen, Laufen ?
              Im Gegensatz zu der Geschlecht-"Radiobox" mit maximal einem Wert, welches in Wirklichkeit eine Auswahlliste ist (tut aber ohne dem Attribut multiple="multiple" nichts zur Sache), bekommst du bei den Hobby-Checkboxen 0 bis 3 Werte vom Formular übergeben, folglich benötigst du prinzipiell auch drei Felder in der Datenbanktabelle.

              Ohne dich jetzt verwirren zu wollen, könntest du unabhängig davon die Hobbys natürlich auch in eine separate Tabelle mit der User-ID als Fremschlüssel auslagern. Dann würde darin jedes Hobby einem Datensatz anstelle eines Feldes in der Ursprungstabelle entsprechen.

              Kommentar


              • #8
                Bevor du mit irgendwelchen wirren Code versuchst, etwas in die DB zu schreiben, solltst du zunächst mal feststellen, was im $_POST-Array übertragen wird. Dazu am Anfang des Scriptes die Anweisung "print_r($_POST)" notieren.
                Aufgrund dieser Erkenntnisse sollte es dir dann gelingen, deine DB zu füllen.
                Wenn dies nicht funktioniert, solltest du nach der SQL-Anweisung mal evtl. vorhandene Fehlermeldungen prüfen.
                "mysql_error()" oder "mysql_errno()" sind hier sicherlich hilfreich.

                Kommentar


                • #9
                  ok, werd ich nachher direkt mal ausprobieren . dankeeeee...

                  Kommentar


                  • #10
                    ach... eine Frage noch zu der Tabellenanzahl:
                    wenn ich am Ende bei der Abfrage eine Stadt eingeben will mit den Hobbies,
                    also Mitglieder angezeigt bekommen will die z.B.: in Dortmund wohnen und dieses oder jenes Hobbies haben,
                    ist es da ratsam 3 Tabellen zu machen (Wohnort, Hobbies, Rest), oder reichen 2 ?
                    Danke und viele Grüße, Tom.

                    Kommentar


                    • #11
                      oh man ich werde noch wahnsinnig......

                      kann mir das vielleicht jemand mal in mein Formular eintippen... das kann doch nicht so viel code sein .
                      Ich hab wieder den ganzen Tag dran gesessen... ohne Ergebnis.
                      Wie gesagt, alles funktioniert, aber die Checkbox nie.
                      Ich habe an den Stellen wo es wohl fehlerhaft ist eine Kette von Fragezeichen gemacht und die Zeile abgesetzt,
                      also bei..... der Tabelleneingabe, der Checkbox und der Benutzereintragung.
                      Das wäre ganz toll wenn das endlich funktionieren würde .....
                      Bitte Bitte Bitte.......

                      PHP-Code:
                       <body>

                      <div id='wrapper'>      

                      <div id='header'>       
                      </div>                  
                            
                      <div id='content'>   
                       <fieldset>      
                        <legend>
                        &mdash; <a href="index.php">Startseite</a> &mdash; 
                        &mdash; <strong>Anmelden</strong> &mdash; 
                       </legend>
                        
                      <?php

                      include "mmm.php";
                      if (isset(
                      $_GET["uid"])) {
                       
                      $uid strip_tags(trim($_GET["uid"]));

                       if (
                      $ds mysql_query("SELECT `register` FROM `" $TBL_NAME "` WHERE `register` = '" .  mysql_real_escape_string($uid)  . "' AND `sperre` = '0' ")) {
                        if (
                      mysql_num_rows($ds) == 1) { 
                         list(
                      $register) = mysql_fetch_row($ds);

                         if ((
                      floor((time() - $register) / 86400)) > $FREISCHALTTAGE) {

                          
                      mysql_query("DELETE FROM `" $TBL_NAME "` WHERE `register` = '" $register "'");
                          echo 
                      "<h3 class='fehler'>Fehler bei der Registrierung!</h3>
                           <p>Die Zeit um Ihre Registrierung freizuschalten ist leider abgelaufen (" 
                      $FREISCHALTTAGE .
                           
                      " Tage),<br>bitte registrieren Sie Sich erneut!<br><br>
                           &raquo; <a href='" 
                      $_SERVER["SCRIPT_NAME"] . "'>Registrieren</a></p>";
                         }
                         else {

                          
                      mysql_query("UPDATE `" $TBL_NAME "` SET `email_ok` = '1', `sperre` = '1'  WHERE `register` = '" $register "'");
                          echo 
                      "<h3>Registrierung erfolgreich</h3>
                           <p>Ihre Registrierung wurde erfolgreich abgeschlossen. <br>
                           Sie können Sich nun, mit Ihrem Benutzernamen und Passwort anmelden.<br><br>
                           &raquo; <a href='login.php'>Weiter zum Login</a></p>"
                      ;
                         }
                        }
                        else {
                        
                        
                         echo 
                      "<p class='fehler'>Sie müssen sich &raquo; <a href='" $_SERVER["SCRIPT_NAME"] . "'>Registrieren</a></p>";
                        }
                       }
                      }
                      else {
                       
                      $benutzername = isset($_POST["benutzername"]) ? $_POST["benutzername"] : "";
                       
                      $passwortA = isset($_POST["passwortA"]) ? $_POST["passwortA"] : "";
                       
                      $passwortB = isset($_POST["passwortB"]) ? $_POST["passwortB"] : "";
                       
                      $email = isset($_POST["email"]) ? $_POST["email"] : "";
                       
                      $alter = isset($_POST["alter"]) ? $_POST["alter"] : "";
                       
                      $geschlecht = isset($_POST["geschlecht"]) ? $_POST["geschlecht"] : "";
                       
                      $wohnort = isset($_POST["wohnort"]) ? $_POST["wohnort"] : "";
                       
                       
                      $hobby = isset($_POST["hobby"]) ? $_POST["hobby"] : "";            ????????????????????????????????????????????????????????
                       
                       
                      $nutzungsbedingung = isset($_POST["nutzungsbedingung"]) ? $_POST["nutzungsbedingung"] : "";
                       
                      $nutzungsbedingungCk = isset($_POST["nutzungsbedingung"]) ? " checked='checked'" "";

                       
                      $fehler = array("benutzername"=>"","passwort"=>"","email"=>"","nutzungsbedingung"=>"");
                       if (
                      $_SERVER['REQUEST_METHOD'] == "POST") {
                        
                      $ds mysql_query("SELECT `benutzername` FROM `" $TBL_NAME "` WHERE `benutzername` = '" .  mysql_real_escape_string($benutzername)  . "' ");
                        
                      $fehler["benutzername"] = strlen($benutzername) < "<br>Der Benutzername ist zu kurz!" "";
                        
                      $fehler["benutzername"] = strlen($benutzername) > 35 "<br>Der Benutzername ist zu lang!" $fehler["benutzername"];
                        
                      $fehler["benutzername"] = $benutzername != preg_replace("/[^a-zA-ZäöüßÄÖÜ 0-9]/"""trim($benutzername)) ? "<br>Der Benutzername darf nur Buchstaben und Ziffern enthalten!" $fehler["benutzername"];
                        
                      $fehler["benutzername"] = mysql_num_rows($ds) == "<br>Der Benutzername ist bereits vorhanden!" $fehler["benutzername"];
                        
                      $fehler["passwort"] = strlen($_POST["passwortA"]) < || strlen($_POST["passwortB"]) < 8  "<br>Das Passwort ist zu kurz!" "";
                        
                      $fehler["passwort"] = strlen($_POST["passwortA"]) > 70 || strlen($_POST["passwortB"]) > 70  "<br>Das Passwort ist zu lang!" $fehler["passwort"];
                        
                      $fehler["passwort"] = $_POST["passwortA"] != $_POST["passwortB"]  ? "<br>Die Passwörter sind unterschiedlich!" $fehler["passwort"];
                        
                      $fehler["email"] = !filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)  ? "<br>Die E-Mail-Adresse ist fehlerhaft!" "";
                        
                      $fehler["nutzungsbedingung"] = !isset($_POST["nutzungsbedingung"]) ? "<br>Die Nutzungsbedingungen wurden nicht bestätigt!" "";
                       }

                      $formular "
                      <form action='anmelden.php' method='post'>
                       <p>
                        <label>Benutzername:
                        <span class='fehler'>✲ " 
                      $fehler["benutzername"] . "</span> <br>
                        <input type='text' name='benutzername' value='" 
                      $benutzername "' size='40' maxlength='35' autofocus='autofocus'>
                        </label></p>
                        <p>
                        <br><span class='hilfetext'> Geben Sie hier Ihren gewünschten Benutzernamen ein (min. 4 Zeichen). </span>
                       </p>
                       <p>
                        <label>Passwort:
                        <span class='fehler'>✲ " 
                      $fehler["passwort"] . "</span> <br>
                        <input type='password' name='passwortA' value='" 
                      $passwortA "' size='25'>
                        </label></p>
                        <p>
                        <br><span class='hilfetext'> Geben Sie hier ein Passwort ein (min. 8 Zeichen). <br>
                         Achten Sie bei dem Passwort auf die Groß-/Kleinschreibung!</span>
                       </p>
                        <p>
                        <label>Passwort wiederholen:
                        <span class='fehler'>✲ " 
                      $fehler["passwort"] . "</span> 
                        <br>
                        <input type='password' name='passwortB' value='" 
                      $passwortB "' size='25'>
                        </label>
                        </p>
                        <p>
                        <br><span class='hilfetext'> Wiederholen Sie das Passwort. </span>
                       </p>
                       <p>
                        <label>E-Mail:
                         <span class='fehler'>✲ " 
                      $fehler["email"] . "</span> 
                         <br>
                        <input type='email' name='email' value='" 
                      $email "' size='40'>
                        </label>
                        </p>
                        <p>
                        <br><span class='hilfetext'> Geben Sie hier Ihre (gültige) E-Mail-Adresse ein. </span>
                       </p>
                         <p>
                        <label>Alter:
                        <br>                                              
                        <input type='alter' name='alter' value='" 
                      $alter "' size='40' maxlength='3'>              
                        </label>
                        </p>
                        <p>
                        <br><span class='hilfetext'> Geben Sie hier Ihr Alter ein. </span>
                        </p>
                          <p> 
                         <label>Geschlecht: 
                         <br> 
                         <select name='geschlecht'>
                         <option name='weiblich' value='weiblich' " 
                      $geschlecht " selected='selected'>weiblich</option>
                         <option name='männlich' value='männlich' " 
                      $geschlecht ">männlich</option>
                         </select> 
                         </label>
                       </p>    
                      <br><br> 
                         <p>
                         <label>Wohnort: 
                         <br>
                         <select name='wohnort'>
                       <option name='Alle Städte' value='Alle Städte' " 
                      $wohnort ">Alle Städte</option>
                      <option name='Aachen' value='Aachen' " 
                      $wohnort ">Aachen</option>
                      <option name='Aalen' value='Aalen' " 
                      $wohnort ">Aalen</option>
                      <option value='Achern' " 
                      $wohnort ">Achern</option>
                      <option value='Achim' " 
                      $wohnort ">Achim</option>
                      <option value='Ahaus' " 
                      $wohnort ">Ahaus</option>
                      <option value='Ahlen' " 
                      $wohnort ">Ahlen</option>
                        </select> 
                         </label>
                       </p>    
                      <br><br> 

                        <p>                          
                                            ???????????????????????????????????????????????????????????????????????
                       <p>Bitte nennen Sie Ihr Hobby</p>
                      <p><input type="
                      checkbox" name='segeln' value='" $hobby "' />Segeln</p>
                      <p><input type="
                      checkbox" name='schwimmen' value='" $hobby "' />Schwimmen</p>
                      <p><input type="
                      checkbox" name='laufen' value='" $hobby "' />Laufen</p>
                        <br>
                        <p>
                         <label>
                         <br>
                         <input type='checkbox' name='nutzungsbedingung' value='Ja' " 
                      $nutzungsbedingungCk ">
                         Ich habe die <a href='bedingungen.htm' target='_blank'>Nutzungsbedingungen</a> <br>
                         gelesen und bin damit einverstanden
                         </label>
                        </p>
                        <p>
                         <span class='fehler'>✲ " 
                      $fehler["nutzungsbedingung"] . "</span>
                        </p>
                        <br>
                         <p>
                         <label>
                         <span class='fehler'>✲</span> Bitte füllen Sie alle Pflichtfelder aus! </p>
                         <br>
                         <p>
                         <input type='submit' value='Registrieren'>
                         </label>
                        </p>
                        <br><br>
                       
                      </form>"
                      ;

                       if (
                      $_SERVER['REQUEST_METHOD'] == "POST") {

                        if (
                      implode(""$fehler) == "") {

                          
                      $zeitstempel time();
                          
                      $sql "INSERT INTO `" $TBL_NAME "`
                          SET
                            `sperre`            = '0',
                            `benutzername` = '" 
                      mysql_real_escape_string($benutzername) . "',
                            `email`             = '" 
                      mysql_real_escape_string($email) . "',
                            `email_ok`        = '0',
                            `passwort`        = '" 
                      . ( md5mysql_real_escape_string($_POST["passwortA"])) . substr($SALT024) ) . "',
                            `alter`          = '" 
                      $alter "',
                            `geschlecht`          = '" 
                      $geschlecht "',
                            `wohnort`          = '" 
                      $wohnort "',
                            
                            `hobby`          = '" 
                      $hobby "',                              ?????????????????????????????????
                            
                            `ip`                  = '" 
                      $_SERVER["REMOTE_ADDR"] . "',
                            `register`          = '" 
                      $zeitstempel "',
                            `letzterbesuch`  = '" 
                      $zeitstempel "' ";

                          if (
                      mysql_query($sql)) {

                           if ( 
                      mail($email
                      "Registrierung bei " $HOMEPAGE_NAME
                      "Sie haben sich bei " $HOMEPAGE_NAME " - registriert.
                      Klicken Sie auf den folgenden Link um Ihre Registrierung abzuschließen: 
                      $REGISTER "?uid=" $zeitstempel 
                      Bestätigen Sie innerhalb von " 
                      $FREISCHALTTAGE " Tagen Ihre Registrierung.
                      Mit freundlichen Grüßen
                      $ADMIN_NAME,
                            
                      "From: " $ADMIN_EMAIL)) {
                            
                            echo 
                      "<h3>Vielen Dank für die Registrierung!</h3>
                             <p>Merken Sie sich Ihren Benutzernamen und das Passwort oder schreiben Sie diese auf. <br><br>
                             Sie erhalten über E-Mail einen Link den Sie <u>innerhalb</u> von " 
                      $FREISCHALTTAGE " Tagen <br> 
                             anklicken müssen, dann ist die Registrierung abgeschlossen.</p>"
                      ;

                            
                      mail($ADMIN_EMAIL
                      "Neue Registrierung - " $HOMEPAGE_NAME,
                      "Hallo " $ADMIN_NAME ",
                      der Benutzer: " 
                      $benutzername "
                      hat sich am: " 
                      date("d.m.Y \u\m H:i"$zeitstempel) . "
                      auf " 
                      $HOMEPAGE_NAME " registriert.",
                             
                      "From: " $ADMIN_EMAIL);
                           }
                          }
                         }
                        else {

                         echo 
                      $formular;
                        }
                       }
                      ?>

                       </fieldset>

                      </div>                

                      </div>              

                      </body>

                      Kommentar


                      • #12
                        So, ich habs soweit selber rausbekommen....
                        aber ist es so richtig (auf jeden Fall funktioniert es ) ?

                        zu den Fragezeichen an den 3 Stellen:

                        PHP-Code:
                        1)        
                                    
                        $hobby1 = isset($_POST["Segeln"]) ? $_POST["Segeln"] : "";
                                
                        $hobby2 = isset($_POST["Schwimmen"]) ? $_POST["Schwimmen"] : "";
                                
                        $hobby3 = isset($_POST["Laufen"]) ? $_POST["Laufen"] : "";
                            
                        2)
                             <
                        p>Bitte nennen Sie Ihr Hobby</p>
                        <
                        p><input type="checkbox" name='segeln' " . $hobby1 . " value='Segeln' />Segeln</p>
                        <
                        p><input type="checkbox" name='schwimmen' " . $hobby2 . " value='Schwimmen' />Schwimmen</p>
                        <
                        p><input type="checkbox" name='laufen' " . $hobby3 . " value='Laufen' />Laufen</p>
                          <
                        br>
                          
                        3)
                                   `
                        hobby1`          = '" . $hobby1 . "',  
                               `
                        hobby2`          = '" . $hobby2 . "'
                               `
                        hobby3`          = '" . $hobby3 . "'
                        Nu hab ich den Spaß bei der Datenbankabfrage, sprich dem Suchformular, wo ich einen Wohnort eingebe und die Hobbys. Also wiederum mit Radiobutton und Checkbox arbeite,
                        nur in anderer Richtung.
                        Wäre da auch für Tips dankbar was die Auswahl (select FROM where) angeht.

                        Viele Grüße

                        Kommentar


                        • #13
                          keiner eine Ahnung ?

                          Kommentar


                          • #14
                            Hast du eine Frage gestellt?

                            Kommentar


                            • #15
                              jeeeeep:

                              ......nur in anderer Richtung.
                              Wäre da auch für Tips dankbar was die Auswahl (select FROM where) angeht.

                              Viele Grüße (s.o.)

                              Kommentar

                              Lädt...
                              X