Lottozahlen aus checkboxen übergeben

Anacondi

Erfahrenes Mitglied
Hi an alle.
Habe wieder mal eine Frage.
Ich habe mittels Checkboxen für ein Lottospiel die eingabefelder erstellt.
Nun komme ich aber nicht weiter.
Wie ermittel ich jetzt in der ziehung.php welche zahl angeklickt wurde, und wie übergebe ich die dann in die datenbank wo ich eine Tabelle lotto erstellt habe mit : user_id , zahl1, zahl2 , zahl3, zahl4. zahl5, zahl6.
Ich komme hier einfach nicht weiter.
Hier meine bisherige arbeit:
Code:
 <form name="Lottoschein" action="Ziehung.php" method="post">
<table width="250">
<tr>
<td>1<br><input type="checkbox" name="1"></input></td>
<td>2<br><input type="checkbox" name="2"></input></td>
<td>3<br><input type="checkbox" name="3"></input></td>
<td>4<br><input type="checkbox" name="4"></input></td>
<td>5<br><input type="checkbox" name="5"></input></td>
<td>6<br><input type="checkbox" name="6"></input></td>
<td>7<br><input type="checkbox" name="7"></input></td>
</tr>
<tr>
<td>8<br><input type="checkbox" name="8"></input></td>
<td>9<br><input type="checkbox" name="9"></input></td>
<td>10<br><input type="checkbox" name="10"></input></td>
<td>11<br><input type="checkbox" name="11"></input></td>
<td>12<br><input type="checkbox" name="12"></input></td>
<td>13<br><input type="checkbox" name="13"></input></td>
<td>14<br><input type="checkbox" name="14"></input></td>
</tr>
<tr>
<td>15<br><input type="checkbox" name="15"></input></td>
<td>16<br><input type="checkbox" name="16"></input></td>
<td>17<br><input type="checkbox" name="17"></input></td>
<td>18<br><input type="checkbox" name="18"></input></td>
<td>19<br><input type="checkbox" name="19"></input></td>
<td>20<br><input type="checkbox" name="20"></input></td>
<td>21<br><input type="checkbox" name="21"></input></td>
</tr>
<tr>
<td>22<br><input type="checkbox" name="22"></input></td>
<td>23<br><input type="checkbox" name="23"></input></td>
<td>24<br><input type="checkbox" name="24"></input></td>
<td>25<br><input type="checkbox" name="25"></input></td>
<td>26<br><input type="checkbox" name="26"></input></td>
<td>27<br><input type="checkbox" name="27"></input></td>
<td>28<br><input type="checkbox" name="28"></input></td>
</tr>
<tr>
<td>29<br><input type="checkbox" name="29"></input></td>
<td>30<br><input type="checkbox" name="30"></input></td>
<td>31<br><input type="checkbox" name="31"></input></td>
<td>32<br><input type="checkbox" name="32"></input></td>
<td>33<br><input type="checkbox" name="33"></input></td>
<td>34<br><input type="checkbox" name="34"></input></td>
<td>35<br><input type="checkbox" name="35"></input></td>
</tr>
<tr>
<td>36<br><input type="checkbox" name="36"></input></td>
<td>37<br><input type="checkbox" name="37"></input></td>
<td>38<br><input type="checkbox" name="38"></input></td>
<td>39<br><input type="checkbox" name="39"></input></td>
<td>40<br><input type="checkbox" name="40"></input></td>
<td>41<br><input type="checkbox" name="41"></input></td>
<td>42<br><input type="checkbox" name="42"></input></td>
</tr>
<tr>
<td>43<br><input type="checkbox" name="43"></input></td>
<td>44<br><input type="checkbox" name="44"></input></td>
<td>45<br><input type="checkbox" name="45"></input></td>
<td>46<br><input type="checkbox" name="46"></input></td>
<td>47<br><input type="checkbox" name="47"></input></td>
<td>48<br><input type="checkbox" name="48"></input></td>
<td>49<br><input type="checkbox" name="49"></input></td>
</tr>
</table>
<input type="submit" value="Ziehen!"></input>
</form>
 
Entferne jeweils </input> und ergänze im input-Element jeweils ein value-Attribut. Außerdem sollte das "name" nicht nur aus Zahlen bestehen. Sollte dann so aussehen:
Code:
<input type="checkbox" name="nummer10" value="1">

Wenn Du dann bei der Verarbeitung $_POST["nummer10"] ausliest und den Wert "1" zurück erhälst, wurde die Checkbox angehakt.
 
Wobei wenn du XHTML verwendest, solltest du die Abschlusstags von input da stehen lassen, um valides HTML zu generieren.

Außerdem kann der Name des Input-Elements durchaus eine Ziffer sein. Für diesen Fall wäre es aber sinnvoller, wenn du sie als Array deklarierst, denn dass lässt sich hier einfacher handlen.

Ansonsten läufts genauso ab, wie threadi schon geschrieben hat. Die Input-Felder benötigen ein value, damit sie im Script auch ordentlich abgefragt werden können:

PHP:
 <form name="Lottoschein" action="Ziehung.php" method="post">
<table width="250">
<tr>
<td>1<br><input type="checkbox" name="lz[]" value="1"></input></td>
<td>2<br><input type="checkbox" name="lz[]" value="2"></input></td>
<td>3<br><input type="checkbox" name="lz[]" value="3"></input></td>
<td>4<br><input type="checkbox" name="lz[]" value="4"></input></td>
<td>5<br><input type="checkbox" name="lz[]" value="5"></input></td>
<td>6<br><input type="checkbox" name="lz[]" value="6"></input></td>
<td>7<br><input type="checkbox" name="lz[]" value="7"></input></td>
</tr>
<tr>
<td>8<br><input type="checkbox" name="lz[]" value="8"></input></td>
<td>9<br><input type="checkbox" name="lz[]" value="9"></input></td>
<td>10<br><input type="checkbox" name="lz[]" value="10"></input></td>
<td>11<br><input type="checkbox" name="lz[]" value="11"></input></td>
<td>12<br><input type="checkbox" name="lz[]" value="12"></input></td>
<td>13<br><input type="checkbox" name="lz[]" value="13"></input></td>
<td>14<br><input type="checkbox" name="lz[]" value="14"></input></td>
</tr>
<tr>
<td>15<br><input type="checkbox" name="lz[]" value="15"></input></td>
<td>16<br><input type="checkbox" name="lz[]" value="16"></input></td>
<td>17<br><input type="checkbox" name="lz[]" value="17"></input></td>
<td>18<br><input type="checkbox" name="lz[]" value="18"></input></td>
<td>19<br><input type="checkbox" name="lz[]" value="19"></input></td>
<td>20<br><input type="checkbox" name="lz[]" value="20"></input></td>
<td>21<br><input type="checkbox" name="lz[]" value="21"></input></td>
</tr>
<tr>
<td>22<br><input type="checkbox" name="lz[]" value="22"></input></td>
<td>23<br><input type="checkbox" name="lz[]" value="23"></input></td>
<td>24<br><input type="checkbox" name="lz[]" value="24"></input></td>
<td>25<br><input type="checkbox" name="lz[]" value="25"></input></td>
<td>26<br><input type="checkbox" name="lz[]" value="26"></input></td>
<td>27<br><input type="checkbox" name="lz[]" value="27"></input></td>
<td>28<br><input type="checkbox" name="lz[]" value="28"></input></td>
</tr>
<tr>
<td>29<br><input type="checkbox" name="lz[]" value="29"></input></td>
<td>30<br><input type="checkbox" name="lz[]" value="30"></input></td>
<td>31<br><input type="checkbox" name="lz[]" value="31"></input></td>
<td>32<br><input type="checkbox" name="lz[]" value="32"></input></td>
<td>33<br><input type="checkbox" name="lz[]" value="33"></input></td>
<td>34<br><input type="checkbox" name="lz[]" value="34"></input></td>
<td>35<br><input type="checkbox" name="lz[]" value="35"></input></td>
</tr>
<tr>
<td>36<br><input type="checkbox" name="lz[]" value="36"></input></td>
<td>37<br><input type="checkbox" name="lz[]" value="37"></input></td>
<td>38<br><input type="checkbox" name="lz[]" value="38"></input></td>
<td>39<br><input type="checkbox" name="lz[]" value="39"></input></td>
<td>40<br><input type="checkbox" name="lz[]" value="40"></input></td>
<td>41<br><input type="checkbox" name="lz[]" value="41"></input></td>
<td>42<br><input type="checkbox" name="lz[]" value="42"></input></td>
</tr>
<tr>
<td>43<br><input type="checkbox" name="lz[]" value="43"></input></td>
<td>44<br><input type="checkbox" name="lz[]" value="44"></input></td>
<td>45<br><input type="checkbox" name="lz[]" value="45"></input></td>
<td>46<br><input type="checkbox" name="lz[]" value="46"></input></td>
<td>47<br><input type="checkbox" name="lz[]" value="47"></input></td>
<td>48<br><input type="checkbox" name="lz[]" value="48"></input></td>
<td>49<br><input type="checkbox" name="lz[]" value="49"></input></td>
</tr>
</table>
<input type="submit" value="Ziehen!"></input>
</form>
<?php
if(isset($_POST['lz'])) { 
	foreach($_POST['lz'] as $lottoZahl) {
		echo "$lottoZahl wurde gezogen <br/>";
	}
}
?>
 
Danke. soweit fonktionierts schon mal, und in der ziehung.php werden die Zahlen angezeigt.
Mein Problem ist aber, wie übergebe ich diese zahlen jetzt an die datenbank zum schreiben in der tabelle lotto bei zahl1, zahl2 zahl3,zahl4,zahl5.
Das heusst, wie lese ich die einzeln aud und weise sie den Variablen $zahl1 = , $zahl2 = u.s.w. zu, so das ich sie in die datenbank übergeben kann.
Die user_id ist ja klar, die schhreibt er ja beim input befehl.
 
Und die Spaltennamen lauten wie? zahlxx? Dann wäre eine Möglichkeit:

PHP:
$zahlen = array();
$set = array();
foreach($_POST['lz'] as $lottoZahl) {
  $zahlen[] = "zahl{$lottoZahl}";
  $set[] = $lottoZahl;
}

$query = "INSERT INTO lotto ('" . implode("','", $zahlen) . "') VALUES ('" . implode("','", $set) . "')";

echo $query;
mysql_query($query) or die(mysql_error());

Ohne Gewähr.
 
also noch einmal zum verständniss. habe mich bestimmt falsch ausgedrückt.
#Ich habe eine Datenbank - Spiel-
So ist die tabelle Lotto darin aufgebaut:
CREATE TABLE IF NOT EXISTS `lotto` (
`zahl1` int(5) NOT NULL,
`zahl2` int(5) NOT NULL,
`zahl3` int(5) NOT NULL,
`zahl4` int(5) NOT NULL,
`zahl5` int(5) NOT NULL,
`zahl6` int(5) NOT NULL,
`lotto_user_id` int(5) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
in diese sollen die getippten zahlen eingetragen werden.
So wie Saftmeister geschrieben hat, funktionierts nicht.
Sorry
 
Jetzt, da ich die Struktur kenne:

PHP:
$inserts = '';
for($i=0; $i < 6; $i++)
{
  $inserts .= ($i == 0?'':',') . (int)$_POST['lz'][$i];
}

$query = "INSERT INTO lotto (`zahl1`, `zahl2`, `zahl3`, `zahl4`, `zahl5`, `zahl6`, `lotto_user_id`) VALUES ($inserts, $user_id)";

echo $query;

mysql_query($query) or die(mysql_error());

Wieder ohne Gewähr - ungetestet.
 
PHP:
if( count($_POST['lz']) != 6) 
{
	die("Die anzahl ist ungleich 6");
}
$query = "INSERT INTO `lotto` ".
	"SET ".
	"`zahl1` = '".$_POST['lz'][0]."', ".
	"`zahl2` = '".$_POST['lz'][1]."', ".
	"`zahl3` = '".$_POST['lz'][2]."', ".
	"`zahl4` = '".$_POST['lz'][3]."', ".
	"`zahl5` = '".$_POST['lz'][4]."', ".
	"`zahl6` = '".$_POST['lz'][5]."', ".
	"`lotto_user_id` = '".$_SESSION['user_id']."'";

Das deine Tabellen Stuktur so ist, war nicht ersichtlich gewesen. das müsste klappen

//edit da war jemand schneller ^^
 
Zuletzt bearbeitet:
Zurück