Php 使用复选框将多行插入MySQL
下面是我的代码。我有两个MySQL数据库表,一个是“成员”,另一个是“参与者”。我想将表“member”中的数据显示到我的本地主机页,我做到了。但是,我无法使用复选框将多行“成员”数据插入数据库表“参与者”。我被卡住了。非常感谢您的帮助Php 使用复选框将多行插入MySQL,php,mysql,web,checkbox,dreamweaver,Php,Mysql,Web,Checkbox,Dreamweaver,下面是我的代码。我有两个MySQL数据库表,一个是“成员”,另一个是“参与者”。我想将表“member”中的数据显示到我的本地主机页,我做到了。但是,我无法使用复选框将多行“成员”数据插入数据库表“参与者”。我被卡住了。非常感谢您的帮助 <?php try { $con = new PDO("mysql:host=localhost;dbname=kgruum member", "root", ""); $sql = $con->query("SELECT * FRO
<?php
try {
$con = new PDO("mysql:host=localhost;dbname=kgruum member", "root", "");
$sql = $con->query("SELECT * FROM member");
echo "<table class='info' align='center' border='1'>";
echo "<tr><td width='10'></td>
<td width='10'><b>ID</b></td>
<td width='500'><b>Name</b></td>
<td width='50'><b>Handicap</b></td><tr>";
foreach($sql as $row) {
$ID = $row["ID"];
$Name = $row["Name"];
$Handicap = $row["Handicap"];
echo "<tr>
<td><form method='POST' action='Add participant.php'><input type='checkbox' name='insert[]' value='$ID'></td>
<td>$ID</td>
<td>$Name</td>
<td>$Handicap</td><tr>";
}
echo"</table><div align='center'><input type='image' value='submit' src='add selected button.png' alt='submit Button' onmouseover='this.src='pink add selected button.png'' onmouseout='this.src='add selected button.png'' name='add_btn' id='add_btn'></div><br></form>";
if(isset($_POST['add_btn'])) {
if(!empty($_POST['insert'])) {
foreach($_POST['insert'] as $check) {
$st=$con->prepare("INSERT INTO participants(ID,Name,Handicap) VALUES('$ID','$Name','$Handicap')");
$insert->bindParam('ID',$ID);
$insert->bindParam('Name',$Name);
$insert->bindParam('Handicap',$Handicap);
$st->execute();
}
echo "<script type='text/javascript'>
alert('Successful Insert ! ');
window.location.href = 'Add participant.php';
</script>";
} else {
echo "<script type='text/javascript'>alert('You didn't choose which user you want to insert ! ')</script>";
}
}
} catch(PDOException $e) {
echo "error".$e->getMessage();
}
?>
您没有在insert[]数组中存储$Name和$disability值,只存储$ID值
要解决此问题,请执行以下操作:
<input type='checkbox' name='insert[]' value='$ID|$Name|$Handicap'>
嗨,谢谢你的回答。但它不起作用。我想知道的是,它不能从表“member”中获取数据并将其存储到表“participants”中吗?解决这一问题的方法是查找查询返回的错误,您的错误是什么?预览时没有显示错误。它只是以表格的形式显示成员数据和一个“添加选定项”按钮。但是,在我勾选复选框并单击“添加选定项”按钮后,该按钮不起作用。请将您的按钮更改为:您好,很抱歉再次打扰,出现问题。当我在一次中添加5个人时,只有4个人被添加到我的数据库表中,而另一个人则使用同一个人的ID和姓名重复添加。意味着每次我添加,都有一个人的名字在不断重复。有什么帮助吗?提前谢谢。
foreach($_POST['insert'] as $check) {
$values = explode('|', $check);
$ID = $values[0];
$Name = $values[1];
$Handicap = $values[2];
//The rest of your SQL code goes here as you have it...
$check = '';
}