Home > Backend Development > PHP Tutorial > PHP+JS implements batch deletion of data function

PHP+JS implements batch deletion of data function

小云云
Release: 2023-03-17 20:42:01
Original
2193 people have browsed it

This article mainly introduces the function of batch deletion of data using PHP+JS, and analyzes the selection and submission of page elements using PHP combined with js in the form of examples, as well as the related implementation techniques of using PHP to operate mysql to realize the batch deletion function. At the end, it also comes with a PHP database operation class, friends who need it can refer to it, I hope it can help everyone.

The example in this article describes how to implement batch deletion of data using PHP+JS. Share it with everyone for your reference, the details are as follows:

Form

<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[&#39;id&#39;];?>" 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(&#39;all&#39;)"/>
<input type="button" value="反选" style="background:url(images/cheall.jpg) no-repeat; width:60px; height:23px; border:none;" onClick="selectBox(&#39;reverse&#39;)"/>
<input type="submit" name="btnSave" style="background:url(images/cheall.jpg) no-repeat; width:60px; height:23px; border:none;" value="删除"/></p>
</form>
Copy after login

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>
Copy after login

del_product.php

<?php
include(&#39;checkadmin.php&#39;);
header(&#39;Content-Type: text/html; charset=utf-8&#39;);
if($_POST[&#39;btnSave&#39;]){
 if(empty($_POST[&#39;id&#39;])){
    echo"<script>alert(&#39;必须选择一个产品,才可以删除!&#39;);history.back(-1);</script>";
    exit;
  }else{
/*如果要获取全部数值则使用下面代码*/
   $id= implode(",",$_POST[&#39;id&#39;]);
   $str="DELETE FROM `product` where id in ($id)";
   mysql_query($str);
  echo "<script>alert(&#39;删除成功!&#39;);window.location.href=&#39;product_list.php&#39;;</script>";
}
}
?>
Copy after login

Attachment: Database operation class implemented by 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=&#39;utf8&#39;) {
    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(&#39;数据库选择失败&#39;);
    }
    @mysql_query("set names ".$charset);
  }
  //查询
  public function query($sql) {
    $this->write_log("查询 ".$sql);
    $query = mysql_query($sql,$this->link_id);
    if(!$query) $this->halt(&#39;Query Error: &#39; . $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(&#39;没有要插入的数据&#39;);
      return false;
    }
    while(list($key,$val)=each($dataArray)) {
      $field .="$key,";
      $value .="&#39;$val&#39;,";
    }
    $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(&#39;没有要更新的数据&#39;);
      return false;
    }
    $value = "";
    while( list($key,$val) = each($dataArray))
    $value .= "$key = &#39;$val&#39;,";
    $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(&#39;没有设置删除的条件&#39;);
      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) === &#39;mysql result&#39;) {
        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=&#39;&#39;) {
    $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=&#39;&#39;){
    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);
  }
}
?>
Copy after login

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"] = &#39;./&#39;;//开启日志
?>
Copy after login

Related recommendations:
php Example of Implementing Database Batch Deletion

php database batch deletion method

php How to implement batch deletion using jQuery?

The above is the detailed content of PHP+JS implements batch deletion of data function. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template