echo "<form name='input' action='admin_selecteren_voor_verwijderen.php' method='post'>"; $sql_bestelling= "SELECT * FROM producten"; foreach($dbh->query($sql_bestelling) as $row) { $product_id=$row['product_id']; $product_naam=$row['product_naam']; $prijs=$row['prijs']; $foto=$row['foto']; echo " <br> <img src='$foto' height='70' width='50' border='0'> <b>$product_naam</b> <input type='checkbox' name='$product_naam' value='$product_naam'></br> </br></br></br>"; //if (isset($_POST['submit'])){ // $sql = "DELETE FROM `producten` WHERE product_naam='$product_naam'"; // $query = $dbh->prepare( $sql ); // $result = $query->execute(); //} } if(!empty($_POST['checkbox'])) { foreach($_POST['checkbox'] as $check) { echo "check: ", $check; } } echo " <input type='submit' value='Delete'> </form>"; ?>
Я хочу иметь список продуктов на странице администратора интернет-магазина. У каждого продукта есть флажок. Я хочу, чтобы удалить все флажки, отмеченные флажками. Но я не знаю, как .. Выше было то, что у меня есть до сих пор. Добавлено изображение, как оно выглядит на странице. Но страница представляет собой список продуктов, выбранных из базы данных с помощью цикла foreach, как это видно из кода. Флажок также находится в цикле. Я не знаю, как назначить каждый продукт, который проверяет на переменную, а затем удалять из базы данных. Может кто-нибудь мне помочь?
Вы ищете $_POST['checkbox']
но это не то, что у вас есть в вашей форме. Установите флажок «Все checkbox[]
и используйте значение $ product_naam в качестве значения.
<input type='checkbox' name='checkbox[]' value='$product_naam'>
Теперь вы можете перебрать его и удалить с помощью цикла foreach
.
Назовите все флажки одинаковыми, например delete[]
, и поместите имя продукта в значение каждого флажка.
<form action="..." method='post' > user1<input type="checkbox" name="delete[]" value="<?php echo $product_naam ?>" /><br /> user2<input type="checkbox" name="delete[]" value="<?php echo $product_naam ?>" /><br /> user3<input type="checkbox" name="delete[]" value="<?php echo $product_naam ?>" /><br /> user4<input type="checkbox" name="delete[]" value="<?php echo $product_naam ?>" /><br /> <input type='submit' value='delete' /> </form>
<?php if(isset($_POST['delete'])){ $ids = $_POST['delete']; $sql = "DELETE FROM `producten` WHERE product_naam IN('".implode("','", $ids)."')"; //execute query } ?>
вы не должны указывать этот флажок на имя продукта, просто назовите его delete или что-то еще. Затем вы можете использовать метод foreach для их удаления из базы данных, например:
<?php echo "<form name='input' action='admin_selecteren_voor_verwijderen.php' method='post'>"; $sql_bestelling= "SELECT * FROM producten"; foreach($dbh->query($sql_bestelling) as $row) { $product_id=$row['product_id']; $product_naam=$row['product_naam']; $prijs=$row['prijs']; $foto=$row['foto']; echo " <br> <img src='$foto' height='70' width='50' border='0'> <b>$product_naam</b> <input type='checkbox' name=delete' value='$product_naam'></br> </br></br></br>"; //if (isset($_POST['submit'])){ // $sql = "DELETE FROM `producten` WHERE product_naam='$product_naam'"; // $query = $dbh->prepare( $sql ); // $result = $query->execute(); //} } if(isset($_POST['delete'])) { foreach($_POST['delete'] as $delete){ { $sql = "DELETE FROM producten WHERE product_naam= $delete"; $query = $dbh->prepare( $sql ); $result = $query->execute(); } } echo " <input type='submit' value='Delete'> </form>"; ?>
Кроме того, мне кажется, что вы ошибаетесь «ценность» с «именем», читайте на нем. И было бы неплохо что-то прочитать о PDO, mysql небезопасен. http://www.php.net/manual/en/book.pdo.php