我尝试使用HTML中的PHP将多个值添加到数据库中。但是,我不能只引用HTML表单的name属性,因为表单中的每个字段都是由PHP脚本生成的。我试过谷歌搜索,但由于我不知道我在寻找什么,我的搜索是徒劳的。
这是我用来生成HTML表单的代码:
<form action="input_points.php" method="post">
<?php
while($row = mysql_fetch_array($result)) {
echo $row['Name'] . ' <input type="text" name="userpoints">';
}
?>
<button type="submit" name="add_points">Add Points </button>
</form>
我不知道目录中的名称是什么,因此我需要这段php来确定数据库中的名称。之后,我想有一堆盒子供人们输入点(因此形式)。我无法弄清楚如何将特定文本框与用户链接。
例如,如果我有一个Bob的文本框,我如何将包含Bob获得的点数的输入文本字段与数据库中的Bob条目链接起来?
我知道您可以使用常规表单字段执行此操作:
$userpoints = $_POST['userpoints'];
UPDATE members SET points = $userpoints where $user = "Bob";
但由于我有多个用户,如何将正确的数据库条目与正确的用户链接?另外,我如何确定哪些框为空以及哪些框用值更新?
答案 0 :(得分:0)
您尝试执行的更新不安全,除非您将值视为阻止SQL注入...但如果您确实需要它,而不是mysql_fetch_array()
,请尝试使用mysql_fetch_assoc()
。
使用mysql_fetch_assoc()
,您可以使用array_keys()
提取密钥(数据库字段名称)。键将是表单字段的name
属性,值将是字段的值。
希望它有所帮助。
答案 1 :(得分:0)
您可以使用数组存储所需的所有数据,并添加包含缺失数据的隐藏字段:
<form action="input_points.php" method="post">
<?php
for($i=0; $row = mysql_fetch_array($result); $i++ ) {
echo ' <input type="hidden" name="user[0]['name'] value ='". $row['name'] ."'">';
echo $row['Name'] . ' <input type="text" name="user[$i]['points'] ">';
}
?>
<button type="submit" name="add_points">Add Points </button>
</form>
答案 2 :(得分:0)
如果要更新多个字段,则使用数组
请更改一些代码
<form action="input_points.php" method="post">
<?php
$userCount=mysql_num_rows($result);
echo '<input type="hidden" name="userCount" value="' .$userCount. '">';
while($row = mysql_fetch_array($result)) {
echo '<input type="hidden" name="userid[]" value="' .$row['id']. '">'; //Give the uniq id
echo $row['Name'] . ' <input type="text" name="userpoints[]">';
}
?>
<button type="submit" name="add_points">Add Points </button>
</form>
PHP代码 -
$userCount = $_POST['userCount'];
for($i=1; $i=$userCount; $i++){
$userpoints = $_POST['userpoints'];
$userid = $_POST['userid'];
//UPDATE members SET points = $userpoints where $user = $userid;
//YOUR CODE HERE
}
答案 3 :(得分:0)
问题仅包含上一个值,之前所有值都会被覆盖 的溶液强> NAME = “userpoints” 每次为什么不在数据库中定义它然后获取它就像你获取$ row ['Name']一样必须是不同的?