Флажок внутри цикла php foreach для удаления всех проверок

введите описание изображения здесь

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, как это видно из кода. Флажок также находится в цикле. Я не знаю, как назначить каждый продукт, который проверяет на переменную, а затем удалять из базы данных. Может кто-нибудь мне помочь?

Related of "Флажок внутри цикла php 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