Martin_Online: Neuer Ansatz

Beitrag lesen

Hallo Tom,

OK, ich lass mich mal auf das ein, was du und die anderen mir geschrieben haben. Ich sehe zwar noch kein Vorteil darin alle Daten untereinander zu schreiben, aber OK, wenn ihr es sagt wird es schon ein Grund haben, ihr macht es ja definitiv schon länger wie ich.

Hab mir nun eine Tabelle mit „sprachen“ angelegt, diese sieht so aus

  
CREATE TABLE IF NOT EXISTS `sprachen` (  
`s_id` int(11) NOT NULL,  
  `s_titel` varchar(200) NOT NULL,  
  `s_bezeichnung` varchar(200) NOT NULL  
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;  

Hab auch schon meine Daten eingefügt, diese sehen wie folgt aus

  
INSERT INTO `sprachen` (`s_id`, `s_titel`, `s_bezeichnung`) VALUES  
(1, 'Deutsch', 'deutsch'),  
(2, 'Holländisch', 'hollaendisch'),  
(3, 'Tschechisch', 'tschechisch'),  
(4, 'Türkisch', 'tuerkisch'),  
(5, 'Russisch', 'russisch');  

Das zusammenbauen meiner Felder kann ich nun auch einfacher machen, dieses habe ich wie folgt gelöst:

  
        <form name="form1" method="post" action="">  
        <?php  
		$stmt = $mysqli->prepare("SELECT s_id, s_titel, s_bezeichnung FROM sprachen");  
		$stmt->execute();  
        $stmt->bind_result($s_id, $s_titel, $s_bezeichnung);  
		while($stmt->fetch()) {  
		?>  
          <input name="lang[]" type="checkbox" id="<?php echo $s_bezeichnung;?>" value="<?php echo $s_id;?>">  
          <label for="<?php echo $s_bezeichnung;?>"><?php echo $s_titel;?></label>  
        <br>  
<?php  } ?>  
        <br>  
          <input type="submit" name="abschicken" id="abschicken" value="Daten eintragen">  
        </form>  

Das ganze sieht nun so aus:

http://s7.directupload.net/images/140610/nuti3u7w.png

Wenn ich mir den generierten Quelltext ansehe, sollte soweit auch alles passen. In Value habe ich nun die jeweilige ID stehen.

So, kommen wir nun zum speichern, dieses habe ich nun wie folgt gelöst. In meiner Datenbank gibt es nun eine weitere Tabelle mit „sprachen_user“ diese sie derzeit so aus:

  
CREATE TABLE IF NOT EXISTS `sprachen_user` (  
`su_id` int(11) NOT NULL,  
  `su_userID` varchar(200) NOT NULL,  
  `su_sprachenID` varchar(200) NOT NULL  
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;  

Bevor ich meine neuen Daten in die Datenbank eintragen, lösche ich erstmal alle Datensätze die diesem User gehören, da wir hier nicht von großen Datenmengen reden, denke ich mal, dass das der beste und vor allem einfachste Weg ist oder? Dieses mache ich so:

  
  $id = '1';	  
  $stmt = $mysqli->prepare("DELETE FROM sprachen_user WHERE su_userID=?");  
  $stmt->bind_param("i",  $id);  
  $stmt->execute();  

Derzeit hat $id ein festen Wert, dieser wird später noch dynamisch auf meine UserID geändert, zum testen wollte ich schauen ob wirklich nur die Datensätze gelöscht werden, die den entsprechenden Wert haben.

Kommen wir nun zum speichern meiner Daten, dieses habe ich so gelöst:

  
  if(is_array($_POST["lang"]) && $_POST["lang"][0]){  
	  
	foreach($_POST["lang"] as $v){  
		  
	$stmt = $mysqli->prepare("INSERT INTO sprachen_user (su_userID, su_sprachenID)  VALUES (?, ?)");  
			  
			$su_sprachenID 	= $v;  
			$su_userID	= $user_code;  
			  
			$stmt->bind_param("ss", $su_userID, $su_sprachenID);			  
			$stmt->execute();  
	}}  

Hab ich es richtig verstanden wie ihr es gemeint habt? Wenn nicht ich bin gerne bereit dieses nochmals umzustellen, sollten noch Fehler vorhanden sein.

0 74

Mehrere Werte speichern

Martin_Online
  • php
  1. 0
    Der Martin
    1. 0
      Martin_Online
      1. 0
        Der Martin
        1. 0
          Martin_Online
          1. 0
            Der Martin
            1. 0
              Martin_Online
              1. 0
                Tom
                1. 0
                  Martin_Online
                  1. 0
                    rimi
                2. 0
                  molily
                  1. 1

                    Mehrere Lösungswege eines Threads zulassen

                    Tom
                    • zu diesem forum
                    1. 0
                      Martin_Online
                      1. 0
                        Tom
                        1. 0
                          Martin_Online
                          1. 0
                            Tom
                            1. 0
                              Martin_Online
                              1. 0
                                dedlfix
                                1. 0
                                  Tom
                                  1. 1
                                    dedlfix
                                    1. 0
                                      Tom
                              2. 0
                                Tom
                              3. 0
                                molily
                            2. 0
                              dedlfix
                              1. 0
                                Martin_Online
                                1. 0
                                  Tom
                                2. 0
                                  dedlfix
                              2. 0
                                Tom
                                1. 0
                                  dedlfix
                            3. 0

                              Neuer Ansatz

                              Martin_Online
                              1. 0
                                Martin_Online
                                1. 1
                                  Auge
                                  1. 0
                                    Martin_Online
                                    1. 0
                                      molily
                                      1. 0
                                        Martin_Online
                                        1. 0

                                          Nachtrag

                                          Martin_Online
                                          1. 0
                                            molily
                                          2. 1
                                            Christian Kruse
                                        2. 0
                                          molily
                          2. 0
                            molily
                            1. 0
                              Christian Kruse
                              1. 0

                                Lange nichts gehört

                                Matthias Apsel
                                • menschelei
                                1. 0
                                  Gunnar Bittersmann
                                  1. 0
                                    Christian Kruse
                                2. 0
                                  Christian Kruse
                                  1. 0
                                    molily
                                    1. 1
                                      Christian Kruse
                                      1. 1
                                        Christian Kruse
                                      2. 0
                                        molily
                                        1. 0
                                          Christian Kruse
                    2. 0

                      Das Streben nach einer angemessenen Lösung

                      molily
            2. 0
              Martin_Online
            3. 0
              Martin_Online
              1. 0
                Der Martin
                1. 0
                  Martin_Online
                  1. 0
                    dedlfix
                    1. 0
                      Martin_Online
                      1. 0
                        dedlfix
                        1. 0
                          Martin_Online
                          1. 0
                            dedlfix
                            1. 0
                              Martin_Online
                              1. 0
                                dedlfix
                                1. 0
                                  Martin_Online
                                2. 0
                                  molily
                                  1. 1
                                    dedlfix
                                    1. 0
                                      molily
                                      1. 0
                                        dedlfix
                                      2. 1
                                        Christian Kruse
  2. 0
    dedlfix
  3. 0
    molily
    1. 0
      Martin_Online
      1. 0
        molily
  4. 0
    Martin_Online
  5. 0
    hotti