2013-03-24 2 views
-1

Я пытаюсь дать пользователю возможность проверить, какой элемент нужно удалить. Когда пользователь выберет один или несколько элементов и нажмите кнопку «Удалить», эти данные будут удалены из базы данных. Я также добавил окно поиска для поиска dvd. Поле поиска работает, но удаление не выполняется. Это выглядит так, как в браузере.Удаление PHP из базы данных

PHP deleting

Мой PHP выглядит следующим образом (я вынул код испытующе):

<form action="" method="post"> 
<p><input type="text" name="search"> <input type="submit" value="Search"></p> 
<p><input type="submit" name="deleting" value="Delete"></p> 
</form> 
<?php 
    $link = mysqli_connect($host, $user, $password, $dbname); 
    if (!$link) { 
     die('Could not connect: ' . mysqli_connect_error()); 
    } 
    echo 'Connected successfully<br/>'; 

//searching code goes here 

if (isset ($_POST['deleting']) && isset ($_POST['deleteThese'])) 
{ 
$deleteThese = implode(",", $_POST['deleteThese']); 
$queryTwo = "DELETE FROM `$dbname`.`dvds` WHERE `dvds`.`DvdID` IN ($deleteThese)"; 
$resultTwo = mysqli_query($link, $queryTwo); 
} 

echo "<table border=\"1\"><tr><th>DvdTitle</th><th>RunningTime</th><th>Delete</th></tr>"; 
if (mysqli_num_rows($result) == 0) 
    echo "<tr><td colspan='2'>No records found.</td></tr>"; 

    else { 
    while ($row = mysqli_fetch_assoc($result)) { 
    echo "<tr><td>" . $row['DvdTitle'] . "</td>"; 
    echo "<td>" . $row['RunningTime'] . "</td>"; 
    echo "<td>" . "<form>" . "<input type='checkbox' name='deleteThese[]' value='" . $row['DvdID'] . "' >" . "</form>" . "</td></tr>\n"; 
      } 
     } 
    echo "</table>"; 
    mysqli_free_result($result); 
    mysqli_close($link); 
?> 

Каждый DvdTitle имеет уникальный Dvd ID, следовательно, значение каждой строки в DVD, ID $row['DvdID'].

+0

У вас нет ошибок ('error_reporting (E_ALL);')? – 2013-03-24 23:28:03

+0

Нет, ошибки не было –

+0

print_r ($ queryTwo); die(); // скопируйте его и запустите вручную в phpMyAdmin или что угодно :) – FeRtoll

ответ

1

Добавление скобок позволит выбрать эти идентификаторы для удаления.

IN($deleteThese) 

EDIT

Не закрывать форму после кнопки отправки. Поместите это в конец кода. Это позволит включить форму.

<form action="" method="post"> 
<p><input type="text" name="search"> <input type="submit" value="Search"></p> 
<!-- YOUR PHP CODE --> 
<p><input type="submit" name="deleting" value="Delete"></p> 
</form> 

второй Edit [предложено улучшить код]

Перемещение IsSet на верхней части формы.

<?php 
if (isset ($_POST['deleting']) && isset ($_POST['deleteThese'])) 
{ 
    $deleteThese = implode(",", $_POST['deleteThese']); 
    $queryTwo = "DELETE FROM `$dbname`.`dvds` WHERE `dvds`.`DvdID` IN ($deleteThese)"; 
    $resultTwo = mysqli_query($link, $queryTwo); 
} 
?> 
<form>.... 
+0

вот так? '"

". "". "
" ' –

+0

Я редактировал код. –

+0

Это работает, вроде. Когда я проверяю элемент и нажимаю delete, ничего не происходит. Но если я обновляю страницу, она удалит элемент. Как это исправить? –

0

$deletethese, возможно, вокруг него должны быть кавычки.

Смежные вопросы