Передача массива и удаление из таблицы MySQL - PullRequest
0 голосов
/ 05 марта 2012

У меня есть таблица в MySQL, и я печатаю ее на экране с помощью этого кода:

include ('mysql_con.php');
mysql_select_db("jaz", $con);

$res1 = mysql_query("SELECT * FROM hovno ORDER BY id DESC");

echo "<form action='delete_from_db.php' method='POST'>";
echo "<table border='1'>";
echo "<tr>";
echo "<td colspan='6'>" . "<input type='submit' value='Delete Article'>" . "</td>";
echo "</tr>";
echo "<tr>";
echo "<td>" . "<b>" . "Delete" . "</b>" . "</td>";
echo "<td>" . "<b>" . "ID" . "</b>" . "</td>";
echo "<td>" . "<b>" . "Date" . "</b>" . "</td>";
echo "<td>" . "<b>" . "Title" . "</b>" . "</td>";
echo "<td>" . "<b>" . "Preview" . "</b>" . "</td>";
echo "<td>" . "<b>" . "Author" . "</b>" . "</td>";
echo "</tr>";
while($a=mysql_fetch_array($res1))  {
echo "<tr>";
echo "<td>" . "<input type='checkbox' name='checkbox[]' value='" . $a["id"] . "'>" . "</td>";
echo "<td>" . $a["id"] . "</td>";
echo "<td>" . $a["created"] . "</td>";
echo "<td>" . $a["title"] . "</td>";
echo "<td>" . $a["preview"] . "</td>";
echo "<td>" . $a["author"] . "</td>";
echo "</tr>";
                                }
echo "</table>";
echo "</form>";

Так что я помещаю идентификаторы как значения флажков в массив. В другом php-файле я не хочу использовать эти идентификаторы в массиве для удаления этих записей с этими идентификаторами. Я не знаю, какой код использовать для этой покупки, я попробовал это:

<?php

include ('mysql_con.php');
mysql_select_db("jaz", $con) or die(mysql_error());

        $del[]=$_POST["checkbox"];

        $res1 = mysql_query("SELECT * FROM hovno WHERE id='$del'") or die(mysql_error());

    while($a = mysql_fetch_array($res1)){
            $b = $a["id"];
            mysql_query("DELETE FROM hovno WHERE id ='$b'") or die(mysql_error());
    }

?>

Есть идеи, как заставить это работать? Спасибо

Ответы [ 3 ]

3 голосов
/ 05 марта 2012

Хотя я не уверен насчет PHP, если вы получаете список идентификаторов, разделенных запятыми, вы можете использовать оператор SQL «in».Что-то вроде этого:

$res1 = mysql_query("SELECT * FROM hovno WHERE id in (1,2,3)")

комментарий о именах переменных: Jestli si ty promenne slusne nepojmenujes, tak se vom uz nikdy nevyznas;)

2 голосов
/ 05 марта 2012
<?php
    $del = $_POST['checkbox'];
    $idsToDelete = implode($del, ', ');
    $res1 = mysql_query("SELECT * FROM hovno WHERE id in ($idsToDelete)");
?>
0 голосов
/ 05 марта 2012
foreach($_POST['checkbox'] as $key => $value) {

   // delete query here

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...