2013-03-24 25 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

nope,沒有錯誤 – 2013-03-24 23:30:24

+0

print_r($ queryTwo); die(); //複製粘貼並在phpMyAdmin中手動運行或其他:) – FeRtoll 2013-03-24 23:32:59

回答

1

添加圓括號將允許選擇刪除這些ID。

IN($deleteThese) 

編輯

不要提交按鈕後,關閉表單。把它放在代碼的最後。這將允許表單包含複選框值。

<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> 

第二編輯[要求提高代碼]

移動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

這樣? '「

」。 「」。 「
」' – 2013-03-24 23:36:00

+0

我編輯了代碼。 – 2013-03-24 23:37:08

+0

它的工作,有點。當我檢查一個項目並點擊刪除時,沒有任何反應。但是,如果我刷新頁面,那麼它將刪除該項目。我如何解決這個問題? – 2013-03-24 23:46:25

0

$deletethese可能需要引號。