2014-09-05 109 views
-4

我需要循環刪除過程,如果在數據庫中存在用戶輸入的id。有人可以幫助我嗎?循環直到值爲空

//my php code 
$ppnum=$_POST['pnum']; 

while ($ppnum !== null)) { 
$con=mysqli_connect("","","",""); 
       if (mysqli_connect_errno()){ 
        echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
       } 

mysqli_query($con,"DELETE FROM tbldd WHERE pnum ='$ppnum'"); 

mysqli_close($con);} 
+0

它現在正在做什麼?嘗試更詳細地描述你的問題。從外觀來看,如果輸入爲,那麼該循環將永遠不會終止,因爲您永遠不會更新'$ ppnum'的值 – 2014-09-05 16:01:57

+0

'$ _POST ['pnum']'裏面有什麼? – 2014-09-05 16:02:13

+1

你在這裏沒有正確使用'while',它應該是'if(isset($ _ POST ['pnum']))'然後你應該使用'try {// connection} catch(Exception $ e){ }' – Ohgodwhy 2014-09-05 16:02:15

回答

0

也許你想要這樣嗎?這個假設$ _POST ['pnum']是以逗號分隔的ID列表。

$ppnum=$_POST['pnum']; 

$con=mysqli_connect("","","",""); 
if (mysqli_connect_errno()){ 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

mysqli_query($con,"DELETE FROM tbldd WHERE pnum in ($ppnum)"); 

mysqli_close($con); 

但你必須檢查$ _POST ['pnum']對sql注入攻擊。

+0

我需要刪除所有使用循環的那個pnum的記錄,因爲在刪除過程後也會有保存 – 2014-09-05 16:21:13

+0

@Lia Chi,這將刪除所有記錄包含在$ _POST ['pnum']中。即如果$ _POST ['pnum'] ='1,3,8,12'那麼這個查詢將刪除pnum 1,3,8和12的記錄。我不明白你的評論的第二部分:( – 2014-09-06 06:48:27