10/10/2018, 11:09

Xóa dữ liệu với chechbox

Mình có cái form chứa 2 textbox: mã loại tin tức và tên loại tin tức. có 3 nút: xóa , xóa tất cả,hủy.
require("connect.php");
$sql="select * from loaitintuc";
$kq=mysql_query($sql,$link);
if(mysql_num_rows($kq)!=0)
{
while($dong=mysql_fetch_array($kq))
{
$matt=$dong["matintuc"];
$tenloaitt=$dong["tenloaitintuc"];
echo"$matt";
echo"$tenloaitt";
echo"<input type=checkbox name=checkbox onclick=selectupdate('$matt','$tenloaitt') >";
}
// ham selectupdate dung de hien thi du lieu len form
Mình định dùng checkbox để xóa nhiều dòng dữ liệu nhưng không làm được, các bạn giúp mình với
ltnhuan viết 13:10 ngày 10/10/2018
Thêm vào vòng lập chi chạy stt hiện lên rồi xóa tuần tự theo stt
gyarcier viết 13:21 ngày 10/10/2018
Lâu rồi tớ không truy xuất checkbox theo mảng trên PHP nữa mà dùng javascript dưới client ghép các id được chọn thành 1 nhóm và post lên như 1 chuỗi rồi tách ra xử lý.
meoitt viết 13:24 ngày 10/10/2018
cám ơn các bạn, giúp mình đoạn code này với
mrdinh viết 13:17 ngày 10/10/2018
Bạn có thể làm như sau, sử dụng checkbox kiểu mảng. <input name="id[]" value="value" />.
Như vậy sửa lại một chút đoạn code của bạn như sau:

require("connect.php");
$sql="select * from loaitintuc";
$kq=mysql_query($sql,$link);
if(mysql_num_rows($kq)!=0)
{
while($dong=mysql_fetch_array($kq))
{
$matt=$dong["matintuc"];
$tenloaitt=$dong["tenloaitintuc"];
echo'<input type=checkbox name="id[]" value="'.$matt.'" />';
}

Tiếp theo sử lý khi form được submit để thực hiện xóa.
PHP Code:
   if($_POST)
   {
      
//Đếm xem có checkbox được chọn hay chưa, nếu có thì thực hiện query del
      
if(count($id)>0)
      {
         
$id_del implode(",",$id);
         
$qr "delete from table_name where ID in (".$id_del.")";
         
//Continue code here . . .
      
}
   } 
Như vậy là xong.
meoitt viết 13:09 ngày 10/10/2018
Mình đã làm theo cách bạn mình làm không được, đoạn code của mình:

<input name="them" type="submit" id="xoa" value="Xoa">
<input name="them" type="submit" id="xoatatca" value="Xoa tat ca" >

<?php
require("connect.php");
$sql="select * from thanhvien";
$kq=mysql_query($sql,$link);
if(mysql_num_rows($kq)!=0)
{
while($dong=mysql_fetch_array($kq))
{
$username=$dong["USERNAME"];
$password=$dong["PASSWORD"];
echo"<tr><td> $username </td>;
echo"<td> $password </td>";
echo "<td><input type ='checkbox' name='check[]' value=".'USERNAME'." onclick=selectupdate('$username','$password')</td></tr>";



file xuly.php
require ("connect.php");
$check=$_POST["check[]"];
$submit=$_POST["them"];
if($submit=='Xoa tat ca')
{
if(count($check)>0)
{
$id_del = implode(",",$check);
$qr = "delete from thanhvien where USERNAME in (".$id_del.")";
mysql_query($qr);
}

require ("up_user.php");
}

Các bạn giúp mình sửa nó với.
mrdinh viết 13:23 ngày 10/10/2018
Bạn để ý đoạn này
$qr = "delete from thanhvien where USERNAME in (".$id_del.")";

Mệnh đề where in chỉ đúng khi các giá trị là số, không xử lý được dạng ký tự:
Trường hợp hoạt động
$qr = "delete from thanhvien where ID in (1,2,3)";
Câu query sau sẽ không hoạt động
$qr = "delete from thanhvien where USERNAME in (son,minh,phuong)";

Trường hợp bạn muốn xóa theo USERNAME thì có thể sử dụng vòng for

for($i=0;$i<count($check);$i++){
$user = $check[$i];
$qr = "delete from thanhvien where USERNAME='$user'";
mysql_query($qr);
}


Chúc bạn làm được!
Bài liên quan
0