gpt4 book ai didi

php从mysql中删除行

转载 作者:行者123 更新时间:2023-11-29 22:55:18 25 4
gpt4 key购买 nike

请看看为什么这段代码不起作用,我没有删除这些行。与服务器的连接正常。我可以添加新行,但是当我在选定的行上按 DELETE 时 - 请注意发生的情况。我认为“for”有问题..

提前谢谢您!

    <?php
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name="test_mysql"; // Table name

// 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" align="center" 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>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Imię</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Nazwisko</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Wiek</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Płeć</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['id']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['name_client']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['lastname_client']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['old_client']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['sex_client']; ?></td>
</tr>

<?php
}
?>

<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td>
</tr>

<?php

// Check if delete button active, start this
if($delete){
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
}
// if successful redirect to delete_multiple.php
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=login_success.php\">";
}
}
mysql_close();
?>

</table>
</form>
</td>
</tr>
</table>

最佳答案

要使事情正常运行,只需将下面的代码替换为第 59-69 行中的代码即可。

if(isset($_POST) && isset($_POST['checkbox']))
{
$toDelete = $_POST['checkbox'];
for($i=0; $i<count($toDelete); $i++)
{
$del_id = $toDelete[$i];
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
$result = mysql_query($sql);
}
// if successful redirect to delete_multiple.php
if($result)
echo "<meta http-equiv=\"refresh\" content=\"0;URL=login_success.php\">";
}

此外,您最好重新考虑您的代码:

  • 我相信 ''在“删除”查询中是多余的,
  • mysql_connect()deprecated ,
  • 短开头标签 ( <? ) 为 discouraged ,
  • 您可以在一个 SQL 查询中删除所有选定的项目,而无需重复执行: $idsToDelete = <a href="http://php.net/function.implode" rel="noreferrer noopener nofollow">implode</a>(',', $_POST['checkbox']);
    $sql = "DELETE FROM $tbl_name WHERE id <a href="http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_in" rel="noreferrer noopener nofollow">IN</a> ($idsToDelete);";

关于php从mysql中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28740290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com