<html> <head> <meta charset="utf-8"> </head> <body> <form action="<?php print $SERVER['PHP_SELF'] ?>" method="POST"> <table border="1" cellpadding="5"> <tr> <td align="center"><b>Удалить</b></td> <td align="center"><b>Товар</b></td> <td align="center"><b>Цена</b></td> </tr> <?php $dbname="products.db"; $db = new SQLite3('products.db'); $values= $_POST['price']; $val = $_POST['id']; if (!$db) exit("Не удалось создать базу данных!"); $result = $db->query('select * from Tovar') or die(mysql_error()); // Вывод данных в таблицу while($row = $result->fetchArray()) { echo " <tr>"; echo '<td><input type="checkbox" name="del[]" value="$id" /></td> '; echo " <td>". $row[tovar] ."</td> <td><input value=". $row[price]. "></td> <td>". $row[id]. "</td> </tr> "; } // Занесение данных в таблицу if (isset($_POST['zapis']) && !empty($_POST[add_tovar]) && !empty($_POST[add_price])) { $addtov = strip_tags(trim($_POST['add_tovar'])); $addprr = strip_tags(trim($_POST['add_price'])); $db->exec("INSERT INTO Tovar (tovar, price) values ('$addtov','$addprr')"); } //////////////////////////////////////////////////////////////////////////////////////////////// // Удаление данных через checkbox (НЕ РАБОТАЕТ) // Ошибок нет, но все равно не работает // $button = $_POST['delet']; $check = $_POST['del']; if ( isset($button) ){ foreach ($check as $id) { $db->query(" DELETE FROM Tovar WHERE id = '$id' "); } } // // //////////////////////////////////////////////////////////////////////////////////////////////// $db->close(); ?> <tr> <td></td> <?php echo ' <td><input type="text" name="add_tovar" value="" /></td> <td><input type="text" name="add_price" value="" /></td> '; ?> </tr> <tr> <td colspan="3"> <input type="submit" value="Записать" name="zapis"> <input type="submit" value="Удалить" name="del"> </td> </tr> </table> </form> </body> </html>
Ну, хотя бы вот здесь: PHP: if (isset($_POST['zapis']) && !empty($_POST[add_tovar]) && !empty($_POST[add_price])) { Почему кавычки не везде стоят?
В этом фрагменте все работает, кавычки не обязательны. Я там в коде выделил, что именно не работает $button = $_POST['delet']; $check = $_POST['del']; if ( isset($button) ){ foreach ($check as $id) { $db->query(" DELETE FROM Tovar WHERE id = '$id' "); } }
Кавычки обязательны всегда. В коде выше ты обащаешься к несуществующим константам 'add_towar' и 'add_price'. А работает это только потому, что при отсутствии константы в качестве значение отдается имя константы. Включи вывод ошибок и ты увидишь нотис, что такой константы не сущетсвует. Опускать кавычки можно когда переменная подставляется в строку. PHP: echo "Тут можно опустить кавычки $test[test]"; Относительно твоего вопроса, нихрена не видно, оформи код как полагается.
PHP: $button = $_POST['delet']; $check = $_POST['del']; if ( isset($button) ){ foreach ($check as $id) { $db->query(" DELETE FROM Tovar WHERE id = '$id' "); Вот тут не робит
Не знаю на сколько это правильно) Если я не так это сделал( скорее всего так и есть ), напиши как надо Так тоже не работает( PHP: $button = $_POST['delet']; $check = $_POST['del']; if ( isset($button) ){ foreach ($check as $id) { $rest = $db->query(" DELETE FROM Tovar WHERE id = '$id' "); query($rest); } }
Ты создаешь переменную, а потом проверяешь её существование. Она будет существовать всегда. --- Добавлено ---
Ну если то что я тебе ответил - не верно Значит не понял( --- Добавлено --- Так? PHP: if ( isset($button) ){ $button = $_POST['delet']; $check = $_POST['del']; foreach ($check as $id) { $rest = $db->query(" DELETE FROM Tovar WHERE id = '$id' "); query($rest); } }
Попробовал, все также - ошибки нет, но и не работает PHP: if ( isset($button) ){ $button = $_POST['delet']; $check = $_POST['del']; foreach ($check as $id) { $delTovar = "DELETE FROM Tovar WHERE id = '" . $id ."'"; query($delTovar); } }
@Sergooo ты посмотри, что лежит в переменной $delTovar, скопируй это, вставь в SQL запрос и смотри, что будет
@Sergooo, присмотритесь к строке PHP: echo '<td><input type="checkbox" name="del[]" value="$id" /></td> '; и ответьте на вопрос: "Каким образом определяется переменная $id?