gpt4 book ai didi

php - MySQL/PHP - 用于从数据库中删除多行的复选框数组

转载 作者:行者123 更新时间:2023-12-01 00:18:30 25 4
gpt4 key购买 nike

我在将表单复选框数组作为 mysql_query 传递时遇到了一些问题,以便从表中删除多行。

结构如下:

HTML

<form action="usunogrod.php" method="POST" enctype="multipart/form-data">
<?php
$ogrodysql = "SELECT id_ogrodu, nazwa FROM ogrody";
$result = mysqli_query($con, $ogrodysql);

if (mysqli_num_rows($result) > 0) {

while($row = mysqli_fetch_assoc($result)) {
echo "• " . $row["id_ogrodu"]. " " . $row["nazwa"]. "<input type='checkbox' name='removegarden[]' value=" .$row["id_ogrodu"]." <br><br>";
}
}
else {
echo "0 results";
}
?>

<br><br>
<input type="submit" value="Usuń zaznaczony ogród."/>
</form>

usunogrod.php 中用于处理表单的 PHP

<?php

$db_host = 'xxxxx';
$db_user = 'xxxxx';
$db_pwd = 'xxxxx';
$con = mysqli_connect($db_host, $db_user, $db_pwd);
$database = 'xxxxx';

if (!mysqli_connect($db_host, $db_user, $db_pwd))
die("Brak połączenia z bazą danych.");

if (!mysqli_select_db($con, $database))
die("Nie można wybrać bazy danych.");

function sql_safe($s)
{
if (get_magic_quotes_gpc())
$s = stripslashes($s);
global $con;
return mysqli_real_escape_string($con, $s);
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$ogrod_id = trim(sql_safe($_POST['removegarden[]']));

if (isset($_POST['removegarden[]'])) {

mysqli_query($con, "DELETE FROM ogrody WHERE id_ogrodu='$ogrod_id'");

$msg = 'Ogród został usunięty.';
}
elseif (isset($_GET['removegarden[]']))
$msg = 'Nie udało się usunąć ogrodu.';
};
?>

MySQL 表

ogrody

# id_ogrodu nazwa
1 garden1

我如何处理复选框表单中的数组,以便我能够通过查询来删除所有选中的元素?

编辑:

我已经能够让它工作到只删除一个检查位置的时刻,或者另一次只是收到一个错误,说我无法将数组传递给 mysqli_query。

最佳答案

我认为这对你有帮助:

改变这一行:

echo "• " . $row["id_ogrodu"]. " " . $row["nazwa"]. "<input type='checkbox' name='removegarden[]' value=" .$row["id_ogrodu"]." <br><br>";

对于这个:

echo '• ' . $row["id_ogrodu"]. ' ' . $row["nazwa"]. '<input type="checkbox" name="removegarden['.$row["id_ogrodu"].']" value="'.$row["id_ogrodu"].'" /> <br/><br/>';

然后这个:

if (isset($_POST['removegarden[]'])) {

if (isset($_POST['removegarden'])) {

最后是您的查询:

$gardens = implode(',',$_POST['removegarden']);
mysqli_query($con, "DELETE FROM ogrody WHERE id_ogrodu IN($gardens)");

关于php - MySQL/PHP - 用于从数据库中删除多行的复选框数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43030831/

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