我有一个包含mysql数据库中一些数据的表。我需要从表中更新该信息,所以当我按下提交按钮(表在表单中)时,我需要在数据库上更新所有数据。我可以从数据库中获取信息没有问题,但我无法更新它!这是代码:
<table border=1 cellpadding=4 cellspacing=0 width=960px style='font-size:10px'>
<form id='form1' name='form1' method='post' action='itself.php'>
<thead>
<tr>
<th colspan=3> People on the list </th>
<th><input type='submit' name='filtrar' id='filtrar' value='Filtrar'/></th>
<th><input type='submit' name='modificar' id='modificar' value='Modificar'/></th>
</tr>
<tr>
<th><label for='id'>ID</label></th>
<th><label for='id'>Friends</label></th>
<th><label for='id'>On the list?</label></th>
</tr>
<?
while($row = mysqli_fetch_array($result_listas, MYSQLI_BOTH))
$id= $row['id'];
{
?>
<tr>
<td><? echo "$row[id]" ?>
</td>
<td><select name='friends[<? echo "$id" ?>]' size='1' id='friends[<? echo "$id" ?>]'>
<option selected='selected'><? echo "$row[friends]" ?></option>
<option>less than 10</option>
<option>more than 10</option>
</select>
</td>
<td><select name='onlist[<? echo "$id" ?>]' size='1' id='onlist[<? echo "$id" ?>]'>
<option selected='selected'><? echo "$row[onlist]" ?></option>
<option>SI</option>
<option>NO</option>
</select>
</td>
<?
$ssql_min="select min(id) as id from listas_old";
$result_min= mysqli_query($link, $ssql_min);
$resultado_min = mysqli_fetch_array($result_min, MYSQLI_BOTH);
$ssql_max="select max(id) as id from listas_old";
$result_max= mysqli_query($link, $ssql_max);
$resultado_max = mysqli_fetch_array($result_max, MYSQLI_BOTH);
if(isset($_POST[modificar]))
{
for($i=$resultado_min['id']; $i<$resultado_max['id']; $i++)
{
$sql1="UPDATE listas_old SET friends='$friends[$i]', onlist='$onlist[$i]' WHERE id='$i'";
$result1=mysqli_query($link, $sql1);
}
}
?>
答案 0 :(得分:1)
为自己找到了解决方案!这就是我做的......
像这样更改
for
句子:for($i=$resultado_min['id']; $i<=$resultado_max['id']; $i++) { $friendsfor= $_POST['friends('.$i.')']; $onlistfor= $_POST['onlist('.$i.')']; $sql1="UPDATE listas_old SET friends='$friendsfor', anotado= '$onlistfor' WHERE id='$i'"; }
答案 1 :(得分:0)
似乎您的更新中的引号都是错误的。您正在尝试将字符串(您的更新sql)与php变量连接起来。但是你需要确保php将它们识别为变量而不仅仅是字符串。
应该是这样的
$sql1= "UPDATE listas_old SET friends='" . $friends[$i] . "', onlist='" . $onlist[$i] . "' WHERE id='" . $i . "'";
如果要添加varchar或日期或其他内容,则只需添加单引号。如果是int,则不需要单引号。此外,我不确定onlist会做什么,或者这是否有效。