我在我的网站上创建了一个功能,管理员可以通过一个简单的html格式更新该季节的玩家篮子,但是我在使脚本高效和有效方面遇到了一些麻烦。 / p>
要将数据加载到我使用过这个php脚本的表单:
$conn = new mysqli($host,$username,$password,$db_name)
or die ('Cannot connect to db');
$result = $conn->query("select playerNum, playerName, baskets from dPlayers");
while ($row = $result->fetch_assoc()) {
$dNum = $row['playerNum'];
$dName = $row['playerName'];
$dBasket = $row['baskets'];
echo '<tr>
<th scope="row">'.$dNum.'</th>
<td>'.$dName.'</td>
<td>'.$dBasket.'</td>
<td><input type="text" name="dAdd'.$dNum.'" placeholder="+ Baskets"></td>
<td><input type="hidden" name="dAddId'.$dNum.'" value="'.$dNum.'"></td>
</tr>';
}
这会将每个玩家放入一个表格,以便管理员可以看到他们的号码,名称和当前篮子,然后是输入字段,可以输入额外的篮子。
一旦提交,我就可以完成所有的Str to Int和数学以获得新的分数,但是如何更新MYSQL数据库而不只是为每个玩家编号写一个声明?
另外,只需要添加,隐藏输入就是我可以在当前语句尝试中将该行引用回特定播放器的方式。
CNC中 对不起,应该说,表单允许管理员一次更新每个玩家,而不是一次更新一个。
答案 0 :(得分:0)
您可以使用输入数组并可选择将索引设置为播放器的数字而不是隐藏的输入:
<input type="text" name="dAdd[$dNum]" value="$dBasket" placeholder="+ Baskets">
然后循环并更新:
foreach($_POST['dAdd'] as $number => $baskets) {
$stmt = $conn->prepare("UPDATE dPlayers SET baskets = ? WHERE playerNum = ?");
$stmt->bind_param('ii', $baskets, $number);
$stmt->execute();
}