通过复选框更新多行


Multiple rows being updated via checkbox

我有一个查询,从我的贷款表中选择未返回的贷款列表,所以我试图为每一行做一个复选框,当选中"返回"字段的值设置为"1"(true)时,单击提交按钮,选中的行应该更新为"1"…由于某种原因,我的查询似乎没有显示所有未归还的书,尽管当我回声计数时,正确的数字显示:S这是我到目前为止的代码(感谢任何提前帮助!)

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Loan ID</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Username</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Book ID</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Return Date</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox"         id="checkbox[]" value="<? echo $rows['loan_id']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['loan_id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['username']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['book_id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['return_date']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="update" type="submit"         id="update" value="UPDATE LOANS"></td>
</tr>
<?php
// Check if delete button active, start this
if($update){
 for($i=0;$i<$count;$i++){
 $update_id = $checkbox[$i];
$sql = "UPDATE $tbl_name SET returned = "1" WHERE loan_id='$del_id'";
$result = mysql_query($sql);
}
// if successful redirect to delete_multiple.php
if($result){
echo "<meta http-equiv='"refresh'" content='"0;URL=test_checkbox.php'">";
}
}
mysql_close();
?>
</table>
</form>
</td>
</tr>
</table>

这段代码将帮助您开始转换为mysqli_。它将只检索您的记录集。

<?php
  $link = mysqli_connect("$host", "$username", "$password", "my_db");
  /* check connection */
  if (mysqli_connect_errno()) {
    printf("Connect failed: %s'n", mysqli_connect_error());
    exit();
  }
  $query = "SELECT loan_id, username, book_id, return_date FROM '" . mysqli_real_escape_string($link, $tbl_name) . "'";
  //echo "login log query is $query <br />'n";
  $result = mysqli_query($link, $query) or die(mysqli_error($link));
  if ($result = mysqli_query($link, $query)) {
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF">&nbsp;</td>
<td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Loan ID</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Username</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Book ID</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Return Date</strong></td>
</tr>
<?php
    /* determine number of rows result set */
    $count = mysqli_num_rows($result);
    /* fetch associative array */
    while($row = mysqli_fetch_assoc($result)) {
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $row['loan_id']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $row['loan_id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $row['username']; ?></td>
<td bgcolor="#FFFFFF"><? echo $row['book_id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $row['return_date']; ?></td>
</tr>
<?php
    }
    /* free result set */
    mysqli_free_result($result);
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="update" type="submit" id="update" value="UPDATE LOANS"></td>
</tr>
</table>
<?php
  }
  /* close connection */
  mysqli_close($link);