thinkphp5數據庫怎么批量刪除
創新互聯建站是一家專業的成都網站建設公司,我們專注成都網站制作、做網站、網絡營銷、企業網站建設,外鏈,一元廣告為企業客戶提供一站式建站解決方案,能帶給客戶新的互聯網理念。從網站結構的規劃UI設計到用戶體驗提高,創新互聯力求做到盡善盡美。
// 以下方法供參考
$id = 3;
// 1、如果id是主鍵,且Mysql數據庫
$new -delete($id);
// 2、用表示篩選條件的數組$map
$map["id"]=$id;
$new -where($map)-delete();
// 3、如果id是主鍵
$new -delete($map);
// 4、直接用數組
$new -where(array("id"=$id))-delete();
// 5、刪除多條1,3,5,6,8
$ids = array(1,3,5,6,8);
$maps["id"] = array("in",$ids); // 或者 $maps["id"] = array("in","1,3,5,6,8");
$new -where($maps)-delete();
sample?code:
?php?
if($del_id!=""){?
$del_num=count($del_id);?
for($i=0;$i$del_num;$i++){?
mysql_query("Delete?from?news?where?id='$del_id[$i]'");?
}??
echo("script?type='text/javascript'alert('刪除成功!');history.back();/script");?
}else{?
echo("script?type='text/javascript'alert('請先選擇項目!');history.back();/script");?
}?
?
1.前臺
!DOCTYPE html
html
head
title批量刪除/title
/head
body
scripttype="text/javascript"
//復選框
function checkall(all)
{
var ck = document.getElementsByClassName("ck");
if(all.checked)
{
for(var i=0;ick.length;i++)
{
ck[i].setAttribute("checked","checked");
}
}
else
{
for(vari=0;ick.length;i++)
{
ck[i].removeAttribute("checked");
}
}
}
/script
formaction="test.php"method="post"
tableborder="1"
trthinputtype="checkbox"name="all"onclick="checkall(this)"/id/thth名字/th/tr
!-- 此處調用顯示列表函數 --
?phpshow() ?
trtdcolspan="3"inputtype="submit"value="批量刪除"/td/tr
/table
/form
/body
?php
//顯示列表
function show()
{
//連接數據庫
@mysql_connect('localhost','root','');
mysql_select_db('test');
mysql_query('set names utf8');
$sql="select id,name from test";
$res=mysql_query($sql);
//循環取出數據
while($row=mysql_fetch_row($res))
{
echo "tr
td
inputtype='checkbox'value='{$row[0]}'name='item[]'class='ck'/
{$row[0]}
/td
td{$row[1]}/td
/tr";
}
}
?
/html
2.后臺
?php
//接收post傳來的數組
$arr=$_POST["item"];
/**
* 批量刪除
* 思路:把前臺批量選擇的數據放在數組里,刪除該數組即可
* @param $arr
* @return $res 成功or失敗
*/
functionbatch_del($arr)
{
@mysql_connect('localhost','root','');
mysql_select_db('test');
mysql_query('set names utf8');
//把數組元素組合為字符串:
$str= implode("','",$arr);
//in 表示多個
$sql="delete from test where id in('{$str}')";
$res= mysql_query($sql);
if(!$res){
echo"刪除失敗";
}else{
if(mysql_affected_rows()0){
echo"刪除成功";
}else{
echo"沒有行受到影響";
}
}
}
//調用批量刪除函數
batch_del($arr);
SCRIPT LANGUAGE="JavaScript"
!--
function quan()
{
if(document.getElementsByName("qx[]")[0].checked==false)
{
for(var i=0;idocument.getElementsByName("quanxuan[]").length;i++)
{
document.getElementsByName("quanxuan[]")[i].checked=false;
}
}
if(document.getElementsByName("qx[]")[0].checked)
{
for(var i=0;idocument.getElementsByName("quanxuan[]").length;i++)
{
document.getElementsByName("quanxuan[]")[i].checked=true;
}
}
}
//--
function xuan()
{
var a=new Array();
var i;
var c=0;
for(i=0;idocument.getElementsByName("quanxuan[]").length;i++)
{
if(document.getElementsByName("quanxuan[]")[i].checked)
{
a[c]=document.getElementsByName("quanxuan[]")[i].value;
c++;
/*alert(a);*/
}
}
if(a.length==0)
{
alert("請選擇");
}
else
{
var ss=confirm("確定刪除?");
if(ss==true)
{
location.href="shanchu.php?id="+a;
}
}
}
/SCRIPT
input type="checkbox" name="qx[]" onclick="quan();"font size="2"全選/font
a href="javascript:xuan()"選擇刪除/a
TABLE
TR
TD INPUT TYPE="checkbox" NAME="quanxuan[]" value="1"/TD
TDa/TD
/TR
TR
TD INPUT TYPE="checkbox" NAME="quanxuan[]" value="2"/TD
TDb/TD
/TR
TR
TD INPUT TYPE="checkbox" NAME="quanxuan[]" value="3"/TD
TDc/TD
/TR
TR
TD INPUT TYPE="checkbox" NAME="quanxuan[]" value="4"/TD
TDd/TD
/TR
TR
TD INPUT TYPE="checkbox" NAME="quanxuan[]" value="5"/TD
TDe/TD
/TR
/TABLE
傳值以后 在PHP頁 接值 $zhi=$_GET["a"]; 然后把 $zhi 拆分成數組
$zhi=explode(',',$zhi);
在循環刪除就可以
for($i=0;$icount($idd);$i++)
{
$con-query("delete from 表名 where ajbg_bh='$zhi[$i]'");
}
?php
//先構造SQL語句
$SQL="DELETE?FROM?a?WHERE?b='123'";//刪除a表中所有b字段值為123的記錄
$ALL="DELETE?FROM?a";//刪除a表中所有記錄
$ALL2="TRUNCATE?a";//刪除a表中所有記錄,(推薦使用)
//使用mysql_query命令執行SQL語句,如:
mysql_query($SQL);
問題很大,
首先,act==delAll是怎么來的?還有$id=implode('ID')這也是錯誤的,$id的值是怎么來的?何況implode()函數是將字符串打散為數組,他有2個參數,第一個是標記符(也就是按照什么來打散數組),第二個是要打散的字符串。
其實,你復選框有多個,那就要用for循環依次獲取他的值,拼接成一個字符串。
給你一個我做是實例,你按照這個參考一下:
?php
include_once 'include/confing.php';//引入數據庫操作類
$alldel=$date-ps('alldel');//post方式獲得隱藏域alldel的值
if($date-is($alldel)){//如果alldel的值為真(依次來判斷表單是否提交,因為我這php邏輯代碼和html是在同一個頁面,判斷一下有必要)
$ids='';//初始$ids的值為空
for($i=0;$icount($_POST['checks']);$i++){//根據頁面有多少個復選框進行for循環
$s=$_POST['checks'][$i];//依次取得復選框的值
$ids.=$s.',';//拼接成字符串并在后面加上一個英文半角的逗號
}
$ids=substr($ids,0,strlen($ids)-1);//因為拼接出來的字符串,最后會多出一個逗號,所以用substr函數將他去掉
$del_sql="Delete from websehzhi where tid in ($ids)";//構建sql刪除語句
if($date-del_query($del_sql)){//如果sql語句執行成功
$date-msmdurl('成功刪除選中記錄','?page='.$date-gt('page'));//成功提示并跳轉到指定url
}else{//否則
$date-msmdurl('刪除失敗,您未選中要刪除的記錄','?page='.$date-gt('page'//失敗提示并跳轉到指定url));
}
}
?
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
title批量刪除/title
/head
body
form method="post" name="form" id="form"
input type="checkbox" name="checks[]" value="35" /這是第十條數據br/
input type="checkbox" name="checks[]" value="34" /這是第九條數據br/
input type="checkbox" name="checks[]" value="33" /這是第八條數據br/
input type="checkbox" name="checks[]" value="32" /這是第七條數據br/
input type="checkbox" name="checks[]" value="31" /這是第六條數據br/
input type="checkbox" name="checks[]" value="30" /這是第五條數據br/
input type="checkbox" name="checks[]" value="29" /這是第四條數據br/
input type="checkbox" name="checks[]" value="28" /這是第三條數據br/
input type="checkbox" name="checks[]" value="27" /這是第二條數據br/
input type="checkbox" name="checks[]" value="26" /這是第一條數據br/
input type="hidden" name="alldel" value="1" /
button type="submit"批量刪除/button
/form
/body
/html
我這里是使用了面對對象,你不要管我的類對象代碼,反正原理都差不多!
你也可以使用面對過程,都差不多!
文章題目:php數據表批量刪除 mysql批量刪除表數據
轉載注明:http://m.kartarina.com/article40/hgsieo.html
成都網站建設公司_創新互聯,為您提供網站設計、App開發、搜索引擎優化、靜態網站、網頁設計公司、網站策劃
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯