我想通过INSERT INTO将基本用户输入存储到数据库中。 我设法存储了所有可能的输入(text,tel ...)但是复选框是一个问题,因为它们是数组!我该如何存储它们?
vos_jeux.php (显示复选框)
<form method="post" action="end.php">
<p>
Cochez les jeux désirés pour votre soirée:<br>
<label for="blackjack"><img src="img/blackjack.jpg" alt=""></label>
<INPUT id="blackjack" type="checkbox" name="game[]" value="Blackjack">
<label for="chuckaluck"><img src="img/chuckaluck.jpg" alt=""></label>
<INPUT id="chuckaluck" type="checkbox" name="game[]" value="Chuck à Luck">
<label for="roulette"><img src="img/roulette.jpg" alt=""></label>
<INPUT id="roulette" type="checkbox" name="game[]" value="Roulette">
<label for="stud"><img src="img/stud.jpg" alt=""></label>
<INPUT id="stud" type="checkbox" name="game[]" value="Stud Poker">
<label for="holdem"><img src="img/holdem.jpg" alt=""></label>
<INPUT id="holdem" type="checkbox" name="game[]" value="Holdem Poker">
<label for="boule"><img src="img/boule.jpg" alt=""></label>
<INPUT id="boule" type="checkbox" name="game[]" value="La Boule">
<input type="button" value="Retour en arrière" onClick="self.history.back();">
<input type="submit" name="submit" value="Poursuivre">
</p>
</form>
查看我的数据库:(看看如何&#34; jeux&#34;复选框不会出现)
end.php
<?php
include "connect.php";
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$adresse = $_POST['adresse'];
$tel = $_POST['tel'];
$mail = $_POST['mail'];
$adresse2 = $_POST['adresse2'];
$date = $_POST['date'];
$nb_invite = $_POST['nb_invite'];
$evenement = $_POST['evenement'];
$game = implode(',', $_POST['game']);
$sql = "INSERT INTO donnees (nom, prenom, adresse, tel, email, adresse2, date, nb_invite, evenement, jeux)
VALUES ('$nom', '$prenom', '$adresse', '$tel', '$mail', '$adresse2', '$date', '$nb_invite', '$evenement', '$game')";
if (mysqli_query($conn, $sql)) {
echo "";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
1_我试过&#34; implode&#34;解决方案,但似乎没有效果。我能做什么?
2_回显$ sql变量给出:INSERT INTO donnees (nom, prenom, adresse, tel, email, adresse2, date, nb_invite, evenement, jeux) VALUES ('foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', '')
复选框输入的结果为 NULL &#39;&#39; !为什么呢?
答案 0 :(得分:0)
试试这个会起作用:
<?php
// Get array
$games = $_POST['game'];
foreach ($games as $game)
{
$sql = "INSERT INTO donnees (nom, prenom, adresse, tel, email, adresse2, date, nb_invite, evenement, jeux)
VALUES ('$nom', '$prenom', '$adresse', '$tel', '$mail', '$adresse2', '$date', '$nb_invite', '$evenement', '$game')";
if (mysqli_query($conn, $sql)) {
echo "";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
}
mysqli_close($conn);
?>
答案 1 :(得分:0)
您似乎需要检查数据库字段的类型,特别是jeux
字段,如果您有大量数据,请确保将其设置为TEXT
或LONGTEXT
要存储...如果这不是问题,请检查您的SQL查询周围没有随机空格,可能在VALUES区域附近。
答案 2 :(得分:-1)
使用foreach创建/连接$游戏字符串:
$game = "";
foreach($_POST['game'] as $g){
$game .= $g.", ";
}
然后你可以在你的SQL查询中使用$ game字符串。
$sql = "INSERT INTO donnees (nom, prenom, adresse, tel, email, adresse2, date, nb_invite, evenement, jeux)
VALUES ('$nom', '$prenom', '$adresse', '$tel', '$mail', '$adresse2', '$date', '$nb_invite', '$evenement', '$game')";