PHP+JS實(shí)現(xiàn)批量刪除數(shù)據(jù)功能示例
本文實(shí)例講述了PHP+JS實(shí)現(xiàn)批量刪除數(shù)據(jù)功能。分享給大家供大家參考,具體如下:
表單
<form id="form2" name="form2" method="post" action="del_product.php" onsubmit="return checkF(this)">
<label>
<input type="checkbox" name="id[]" value="<?php echo $rs['id'];?>" style="background:none; border:none;" />
</label>
<div style="padding-left:20px;"><input type="button" value="全選" style="background:url(images/cheall.jpg) no-repeat; width:60px; height:23px; border:none;" onClick="selectBox('all')"/>
<input type="button" value="反選" style="background:url(images/cheall.jpg) no-repeat; width:60px; height:23px; border:none;" onClick="selectBox('reverse')"/>
<input type="submit" name="btnSave" style="background:url(images/cheall.jpg) no-repeat; width:60px; height:23px; border:none;" value="刪除"/></div>
</form>
JS
<script type="text/javascript" language="javascript">
function selectBox(selectType){
var checkboxis = document.getElementsByName("id[]");
if(selectType == "reverse"){
for (var i=0; i<checkboxis.length; i++){
//alert(checkboxis[i].checked);
checkboxis[i].checked = !checkboxis[i].checked;
}
}
else if(selectType == "all")
{
for (var i=0; i<checkboxis.length; i++){
//alert(checkboxis[i].checked);
checkboxis[i].checked = true;
}
}
}
</script>
del_product.php
<?php
include('checkadmin.php');
header('Content-Type: text/html; charset=utf-8');
if($_POST['btnSave']){
if(empty($_POST['id'])){
echo"<script>alert('必須選擇一個(gè)產(chǎn)品,才可以刪除!');history.back(-1);</script>";
exit;
}else{
/*如果要獲取全部數(shù)值則使用下面代碼*/
$id= implode(",",$_POST['id']);
$str="DELETE FROM `product` where id in ($id)";
mysql_query($str);
echo "<script>alert('刪除成功!');window.location.href='product_list.php';</script>";
}
}
?>
附:php實(shí)現(xiàn)的數(shù)據(jù)庫(kù)操作類(lèi)
Db.php:
<?php
Class DB {
private $link_id;
private $handle;
private $is_log;
private $time;
//構(gòu)造函數(shù)
public function __construct() {
$this->time = $this->microtime_float();
require_once("config.db.php");
$this->connect($db_config["hostname"], $db_config["username"], $db_config["password"], $db_config["database"], $db_config["pconnect"]);
$this->is_log = $db_config["log"];
if($this->is_log){
$handle = fopen($db_config["logfilepath"]."dblog.txt", "a+");
$this->handle=$handle;
}
}
//數(shù)據(jù)庫(kù)連接
public function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0,$charset='utf8') {
if( $pconnect==0 ) {
$this->link_id = @mysql_connect($dbhost, $dbuser, $dbpw, true);
if(!$this->link_id){
$this->halt("數(shù)據(jù)庫(kù)連接失敗");
}
} else {
$this->link_id = @mysql_pconnect($dbhost, $dbuser, $dbpw);
if(!$this->link_id){
$this->halt("數(shù)據(jù)庫(kù)持久連接失敗");
}
}
if(!@mysql_select_db($dbname,$this->link_id)) {
$this->halt('數(shù)據(jù)庫(kù)選擇失敗');
}
@mysql_query("set names ".$charset);
}
//查詢(xún)
public function query($sql) {
$this->write_log("查詢(xún) ".$sql);
$query = mysql_query($sql,$this->link_id);
if(!$query) $this->halt('Query Error: ' . $sql);
return $query;
}
//獲取一條記錄(MYSQL_ASSOC,MYSQL_NUM,MYSQL_BOTH)
public function get_one($sql,$result_type = MYSQL_ASSOC) {
$query = $this->query($sql);
$rt =& mysql_fetch_array($query,$result_type);
$this->write_log("獲取一條記錄 ".$sql);
return $rt;
}
//獲取全部記錄
public function get_all($sql,$result_type = MYSQL_ASSOC) {
$query = $this->query($sql);
$i = 0;
$rt = array();
while($row =& mysql_fetch_array($query,$result_type)) {
$rt[$i]=$row;
$i++;
}
$this->write_log("獲取全部記錄 ".$sql);
return $rt;
}
//插入
public function insert($table,$dataArray) {
$field = "";
$value = "";
if( !is_array($dataArray) || count($dataArray)<=0) {
$this->halt('沒(méi)有要插入的數(shù)據(jù)');
return false;
}
while(list($key,$val)=each($dataArray)) {
$field .="$key,";
$value .="'$val',";
}
$field = substr( $field,0,-1);
$value = substr( $value,0,-1);
$sql = "insert into $table($field) values($value)";
$this->write_log("插入 ".$sql);
if(!$this->query($sql)) return false;
return true;
}
//更新
public function update( $table,$dataArray,$condition="") {
if( !is_array($dataArray) || count($dataArray)<=0) {
$this->halt('沒(méi)有要更新的數(shù)據(jù)');
return false;
}
$value = "";
while( list($key,$val) = each($dataArray))
$value .= "$key = '$val',";
$value .= substr( $value,0,-1);
$sql = "update $table set $value where 1=1 and $condition";
$this->write_log("更新 ".$sql);
if(!$this->query($sql)) return false;
return true;
}
//刪除
public function delete( $table,$condition="") {
if( empty($condition) ) {
$this->halt('沒(méi)有設(shè)置刪除的條件');
return false;
}
$sql = "delete from $table where 1=1 and $condition";
$this->write_log("刪除 ".$sql);
if(!$this->query($sql)) return false;
return true;
}
//返回結(jié)果集
public function fetch_array($query, $result_type = MYSQL_ASSOC){
$this->write_log("返回結(jié)果集");
return mysql_fetch_array($query, $result_type);
}
//獲取記錄條數(shù)
public function num_rows($results) {
if(!is_bool($results)) {
$num = mysql_num_rows($results);
$this->write_log("獲取的記錄條數(shù)為".$num);
return $num;
} else {
return 0;
}
}
//釋放結(jié)果集
public function free_result() {
$void = func_get_args();
foreach($void as $query) {
if(is_resource($query) && get_resource_type($query) === 'mysql result') {
return mysql_free_result($query);
}
}
$this->write_log("釋放結(jié)果集");
}
//獲取最后插入的id
public function insert_id() {
$id = mysql_insert_id($this->link_id);
$this->write_log("最后插入的id為".$id);
return $id;
}
//關(guān)閉數(shù)據(jù)庫(kù)連接
protected function close() {
$this->write_log("已關(guān)閉數(shù)據(jù)庫(kù)連接");
return @mysql_close($this->link_id);
}
//錯(cuò)誤提示
private function halt($msg='') {
$msg .= "\r\n".mysql_error();
$this->write_log($msg);
die($msg);
}
//析構(gòu)函數(shù)
public function __destruct() {
$this->free_result();
$use_time = ($this-> microtime_float())-($this->time);
$this->write_log("完成整個(gè)查詢(xún)?nèi)蝿?wù),所用時(shí)間為".$use_time);
if($this->is_log){
fclose($this->handle);
}
}
//寫(xiě)入日志文件
public function write_log($msg=''){
if($this->is_log){
$text = date("Y-m-d H:i:s")." ".$msg."\r\n";
fwrite($this->handle,$text);
}
}
//獲取毫秒數(shù)
public function microtime_float() {
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
}
?>
config.db.php
<?php $db_config["hostname"] = "localhost"; //服務(wù)器地址 $db_config["username"] = "root"; //數(shù)據(jù)庫(kù)用戶(hù)名 $db_config["password"] = "123"; //數(shù)據(jù)庫(kù)密碼 $db_config["database"] = "test"; //數(shù)據(jù)庫(kù)名稱(chēng) $db_config["charset"] = "utf8";//數(shù)據(jù)庫(kù)編碼 $db_config["pconnect"] = 1;//開(kāi)啟持久連接 $db_config["log"] = 1;//開(kāi)啟日志 $db_config["logfilepath"] = './';//開(kāi)啟日志 ?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》、《php+mysqli數(shù)據(jù)庫(kù)程序設(shè)計(jì)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP實(shí)現(xiàn)微信模擬登陸并給用戶(hù)發(fā)送消息的方法【文字,圖片,圖文】
這篇文章主要介紹了PHP實(shí)現(xiàn)微信模擬登陸并給用戶(hù)發(fā)送消息的方法,可實(shí)現(xiàn)發(fā)送文字、圖片及圖文的功能,涉及php針對(duì)微信接口的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
PHP通過(guò)GD庫(kù)實(shí)現(xiàn)驗(yàn)證碼功能示例
這篇文章主要介紹了PHP通過(guò)GD庫(kù)實(shí)現(xiàn)驗(yàn)證碼功能,結(jié)合實(shí)例形式分析了php驗(yàn)證碼相關(guān)圖片繪制、輸出操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-02-02
php allow_url_include的應(yīng)用和解釋
PHP常常因?yàn)樗赡茉试SURLS被導(dǎo)入和執(zhí)行語(yǔ)句被人們指責(zé)。事實(shí)上,這件事情并不是很讓人感到驚奇,因?yàn)檫@是導(dǎo)致稱(chēng)為Remote URL Include vulnerabilities的php應(yīng)用程序漏洞的最重要的原因之一。2010-04-04
PHP更新購(gòu)物車(chē)數(shù)量(表單部分/PHP處理部分)
購(gòu)物車(chē)的數(shù)量是根據(jù)用戶(hù)的選擇商品加入而不斷增加的,下面是具體的實(shí)現(xiàn)代碼(客服端部分/PHP服務(wù)器端處理),有類(lèi)似需求的朋友可以參考下2013-05-05
解決安裝WampServer時(shí)提示缺少msvcr110.dll文件的問(wèn)題
下面小編就為大家?guī)?lái)一篇解決安裝WampServer時(shí)提示缺少msvcr110.dll文件的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07

