[請益] 如何用checkbox foreach 刪除多筆資料

看板PHP作者 (飛)時間13年前 (2012/05/10 09:48), 編輯推噓2(2013)
留言15則, 7人參與, 最新討論串1/3 (看更多)
各位前輩好,我想使用foreach語法刪除我資料表中的多筆資料 但無法執行...不知道哪邊語法有錯 (網頁執行正常,資料庫卻一動也不動) member_table 中的第二欄為 username [NO] [username] [password] 主鍵 §這是秀資料的網頁碼 <?php $data = "SELECT * FROM member_table"; $result = mysql_query($data); echo '<form name="form" method="post" action="del.php">'; echo '<table width="700" border="1">' ; while($row = mysql_fetch_row($result)) { echo "<tr>"; echo '<td><input type=checkbox name="del[]" value="$row[1]" /></td>'; echo "<td>$row[1]</td>"; echo "<td>$row[1]</td>"; } echo "</table>"; echo '<input type=submit value="删除">'; echo '</form>'; >? §這是del.php <?php $link=mysql_connect("localhost","root","test"); mysql_select_db("mydb"); $id=$_POST['del']; foreach($id as $ide){ $data="delete from member_table where username=$ide"; $result=mysql_query($data); if((mysql_affected_rows()==0) or (mysql_affected_rows==-1)) { echo "沒有找到紀錄,或者刪除時出錯"; exit; } else{ echo "紀錄已刪除"; } } mysql_close(); ?> -- 請問del.php哪邊出錯了?! 我的sql欲刪除的那筆資料一直都在 小弟在這先謝謝回應的各位前輩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.231.208.76

05/10 09:57, , 1F
username=\"{$ide}\" "; //文字的話包一下試試
05/10 09:57, 1F
先謝謝S大抽空回答 我如果改成那樣,網頁則會顯示 [沒有找到紀錄,或者刪除時出錯] 如果改 $data='delete from member_table where username="{$ide}" '; 也是 [沒有找到紀錄,或者刪除時出錯]

05/10 10:04, , 2F
註:checkbox 有勾選!
05/10 10:04, 2F
※ 編輯: ufly 來自: 125.231.208.76 (05/10 10:04)

05/10 10:53, , 3F
checkbox 不一定是你預期的 value,而是 on/null
05/10 10:53, 3F

05/10 11:24, , 4F
有設value有值就會是值,不是on/null~
05/10 11:24, 4F

05/10 11:24, , 5F
另外,用單引號包住時不會轉換php的變數,要麼用雙引號
05/10 11:24, 5F

05/10 11:25, , 6F
或者是'xxx'.$param[].'xxx'; 的方式
05/10 11:25, 6F

05/10 15:37, , 7F
'delete from member_table where username=\''.$ide.'\'';
05/10 15:37, 7F

05/10 15:37, , 8F
username看起來應該是varchar或是char,所以要用單引號包住
05/10 15:37, 8F

05/10 15:38, , 9F
當遇到SQL語法問題時,你應該先將sql印出來,貼到mysql去
05/10 15:38, 9F

05/10 15:38, , 10F
這樣會比較方便釐清,光用肉眼很難判斷問題
05/10 15:38, 10F

05/10 15:41, , 11F
不過我蠻建議用NO來當刪除條件的
05/10 15:41, 11F

05/10 17:33, , 12F
謝謝大家...還是試不出來...>"<
05/10 17:33, 12F

05/10 17:50, , 13F
"...where username='".$id."'" 試試
05/10 17:50, 13F

05/10 17:51, , 14F
更正$id -> $ide
05/10 17:51, 14F

05/13 11:53, , 15F
把$data跟$id都echo出來看看 應該就知道問題在哪了
05/13 11:53, 15F
文章代碼(AID): #1FgnvZag (PHP)
文章代碼(AID): #1FgnvZag (PHP)