Cet article présente principalement la fonction de suppression par lots de données à l'aide de PHP+JS. Il analyse avec des exemples la sélection et la soumission des éléments de page contrôlés par PHP et JS, ainsi que les techniques d'implémentation associées à l'utilisation de PHP pour faire fonctionner MySQL vers réalisez la fonction de suppression par lots. À la fin, il est également livré avec une classe d'opération de base de données PHP, les amis qui en ont besoin peuvent s'y référer, j'espère que cela pourra aider tout le monde.
L'exemple de cet article décrit la fonction de suppression par lots de données à l'aide de PHP+JS. Partagez-le avec tout le monde pour votre référence, comme suit :
Formulaire
<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> <p 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="删除"/></p> </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('必须选择一个产品,才可以删除!');history.back(-1);</script>"; exit; }else{ /*如果要获取全部数值则使用下面代码*/ $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>"; } } ?>
Pièce jointe : Classe d'opération de base de données implémentée par php
Db.php :
<?php Class DB { private $link_id; private $handle; private $is_log; private $time; //构造函数 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; } } //数据库连接 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("数据库连接失败"); } } else { $this->link_id = @mysql_pconnect($dbhost, $dbuser, $dbpw); if(!$this->link_id){ $this->halt("数据库持久连接失败"); } } if(!@mysql_select_db($dbname,$this->link_id)) { $this->halt('数据库选择失败'); } @mysql_query("set names ".$charset); } //查询 public function query($sql) { $this->write_log("查询 ".$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('没有要插入的数据'); 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('没有要更新的数据'); 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('没有设置删除的条件'); return false; } $sql = "delete from $table where 1=1 and $condition"; $this->write_log("删除 ".$sql); if(!$this->query($sql)) return false; return true; } //返回结果集 public function fetch_array($query, $result_type = MYSQL_ASSOC){ $this->write_log("返回结果集"); return mysql_fetch_array($query, $result_type); } //获取记录条数 public function num_rows($results) { if(!is_bool($results)) { $num = mysql_num_rows($results); $this->write_log("获取的记录条数为".$num); return $num; } else { return 0; } } //释放结果集 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("释放结果集"); } //获取最后插入的id public function insert_id() { $id = mysql_insert_id($this->link_id); $this->write_log("最后插入的id为".$id); return $id; } //关闭数据库连接 protected function close() { $this->write_log("已关闭数据库连接"); return @mysql_close($this->link_id); } //错误提示 private function halt($msg='') { $msg .= "\r\n".mysql_error(); $this->write_log($msg); die($msg); } //析构函数 public function __destruct() { $this->free_result(); $use_time = ($this-> microtime_float())-($this->time); $this->write_log("完成整个查询任务,所用时间为".$use_time); if($this->is_log){ fclose($this->handle); } } //写入日志文件 public function write_log($msg=''){ if($this->is_log){ $text = date("Y-m-d H:i:s")." ".$msg."\r\n"; fwrite($this->handle,$text); } } //获取毫秒数 public function microtime_float() { list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } } ?>
config.db.php
<?php $db_config["hostname"] = "localhost"; //服务器地址 $db_config["username"] = "root"; //数据库用户名 $db_config["password"] = "123"; //数据库密码 $db_config["database"] = "test"; //数据库名称 $db_config["charset"] = "utf8";//数据库编码 $db_config["pconnect"] = 1;//开启持久连接 $db_config["log"] = 1;//开启日志 $db_config["logfilepath"] = './';//开启日志 ?>
Recommandations associées :
Exemple de suppression par lots d'une base de données en php
Méthode de suppression par lots de la base de données php
Comment réaliser une suppression par lots en php vous utilisez jQuery ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!