Heim  >  Artikel  >  Backend-Entwicklung  >  PHP+JS implementiert die Funktion zum Batch-Löschen von Daten

PHP+JS implementiert die Funktion zum Batch-Löschen von Daten

小云云
小云云Original
2017-12-09 13:11:402146Durchsuche

In diesem Artikel wird hauptsächlich die Funktion der Stapellöschung von Daten mit PHP+JS vorgestellt. Er analysiert anhand von Beispielen die Auswahl und Übermittlung von Seitenelementen, die von PHP und JS gesteuert werden, sowie die damit verbundenen Implementierungstechniken für die Verwendung von PHP zum Betreiben von MySQL Am Ende ist auch eine PHP-Datenbankoperationsklasse enthalten. Freunde, die sie benötigen, können sich darauf beziehen. Ich hoffe, sie kann jedem helfen.

Das Beispiel in diesem Artikel beschreibt, wie man die Stapellöschung von Daten mit PHP+JS implementiert. Teilen Sie es wie folgt als Referenz mit allen:

Formular

<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>

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(&#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>";
}
}
?>

Anhang: Von PHP implementierte Datenbankoperationsklasse

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);
  }
}
?>

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;;//开启日志
?>

Verwandte Empfehlungen:
Beispiel für die Stapellöschung einer Datenbank in PHP

Methode zur Stapellöschung einer PHP-Datenbank

So erreichen Sie eine Stapellöschung in PHP mit jQuery?

Das obige ist der detaillierte Inhalt vonPHP+JS implementiert die Funktion zum Batch-Löschen von Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn