php搜索csv表格中是否存在指定数据

 更新时间:2016年11月25日 16:38  点击:2610
php搜索csv中的数据原理是打开csv文件,然后一行行搜索指定的内容是否包含在我们读取这代码中,如果是返回true。

//搜索csv中指定内容

 代码如下 复制代码

$fh = @fopen("csv_file_name", "r");
if($fh) {
   if(flock($fh, lock_ex)) {
      while(!feof($fh)) {
         $line = fgets($fh);
         if(strstr($line, $target_email_address) !== false) {
            $data = split(",", $line); // $data *is* an array
         }
      }
      flock($fh, lock_un);
   }

   fclose($fh);
}

实现原理很简单就是根据用户提交的数据到mysql数据表中查询是否有相同的,有就输出没有就不操作了。这是一款简单的记录搜索代码。

首先我们来创建搜索数据表
create table if not exists `search` (
  `id` int(4) not null auto_increment,
  `keyword` varchar(500) not null,
  primary key  (`id`)
) engine=myisam default charset=utf8 auto_increment=1 ;

保存数据

 代码如下 复制代码
insert into `acc`.`search` (
`id` ,
`keyword`
)
values (
null , '内容搜索'
), (
null , 'php站内搜索'
);

*/

//数据连接

 代码如下 复制代码

$conn = mysql教程_connect('localhost','ac','1');//这里的ac用户名,1是密码,修改成你自己的mysql便可

$res = mysql_db_query('abc',"select * from search where keyword='内容搜索' ") or die(mysql_error());

if(mysql_num_rows($res) == 1) {
   while($row = mysql_fetch_assoc($res)) {
      foreach($row as $key => $val) {
         echo $row['keyword'],'<br >';
      }
   }
}

/*

本站原创转载注明来源www.111cn.net
*/

 代码如下 复制代码
$cn = mysql_connect('localhost','root','root');
if( $cn )
{
 die('数据库连接成功');
}
else
{
 die('连接失败');
}
这是一款比较适合php初学者学的教程哦,我们利用一个简单的实例来对数据库添加、修改、删除哦,这样更系统的让各位知道php mysql数据库操作的要点。

  require_once('common.php');
  $action = $_get['action'];
?>

 代码如下 复制代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.111cn.net/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>人才列表</title>
<link href="style.css教程" type="text/css" rel="stylesheet" />
</head>
<body> 
 <div id="wrap">
 <div id="main">
 <?php
      if($action=='add'){
 ?>
    <form action="?action=save" method="post" name="form1">
  <table width="300" border="0" cellspacing="0" cellpadding="0"  class="post">
          <tr>
            <td colspan="2">添加人员</td></tr>
          <tr><td width="78">登陆账号</td>
            <td width="220"><input name="login" type="text" id="login" /></td>
          </tr>
          <tr>
            <td>登陆密码</td>
            <td><input name="pws" type="text" id="pws" /></td>
          </tr>
          <tr>
            <td>问题</td>
            <td><input name="question" type="text" id="question" /></td>
          </tr>
           <tr>
            <td>答案</td>
            <td><input name="answer" type="text" id="answer" /></td>
          </tr>
            <tr>
              <td colspan="2"><input name="button" type="submit" id="button" value=" 添加 " /></td>
            </tr>
             
      </table>
    </form>
 <?php  
      }
      elseif($action=='save'){
    $login = isset($_post['login']) ? $_post['login'] : '';
    $pws = isset($_post['pws']) ? $_post['pws'] : '';
    $question = isset($_post['question']) ? $_post['question'] : '';
    $answer = isset($_post['answer']) ? $_post['answer'] : '';
    $sql = "insert into person (login,pws,question,answer)
    values('$login','$pws','$question','$answer')";
    $db->query($sql);
    forward('发布成功','href','personlist.php');
          }

    elseif($action=='del'){
    $person_id=$_get['person_id'];
    $page=$_get['page'];
    $sql="delete from person where person_id='$person_id'";
    $db->query($sql);
    forward('删除成功','href','personlist.php?page='.$page);
          } 
    elseif($action=='editsave'){
    $person_id = isset($_post['person_id']) ? $_post['person_id'] : '';
    $page = isset($_post['page']) ? $_post['page'] : '';
          $login = isset($_post['login']) ? $_post['login'] : '';
    $pws = isset($_post['pws']) ? $_post['pws'] : '';
    $question = isset($_post['question']) ? $_post['question'] : '';
    $answer = isset($_post['answer']) ? $_post['answer'] : '';
    $sql="update person set login='$login',pws='$pws',question='$question',answer='$answer' where person_id='$person_id'";
    $db->query($sql);
          forward('修改成功','href','personlist.php?page='.$page);
          }
   elseif($action=='edit'){
    $person_id=$_get['person_id'];
    $page=$_get['page'];
    $sql="select * from person where person_id='$person_id'";
    $query = $db->query($sql);
    $row = $db->fetch_array($query);
    $login=$row['login'];
    $pws=$row['pws'];
    $question=$row['question'];
    $answer=$row['answer'];
       ?>
    <form action="?action=editsave" method="post" name="form1">
  <table width="300" border="0" cellspacing="0" cellpadding="0"  class="post">
          <tr>
          <input name="page" type="hidden"  value="<?php echo $page?>"/>
          <input name="person_id" type="hidden"  value="<?php echo $person_id?>"/>
            <td colspan="2">修改人员</td></tr>
          <tr><td width="78">登陆账号</td>
            <td width="220"><input name="login" type="text" id="login"  value="<?php echo $login?>"/></td>
          </tr>
          <tr>
            <td>登陆密码</td>
            <td><input name="pws" type="text" id="pws" value="<?php echo $pws?>"/></td>
          </tr>
          <tr>
            <td>问题</td>
            <td><input name="question" type="text" id="question" value="<?php echo $question?>"/></td>
          </tr>
           <tr>
            <td>答案</td>
            <td><input name="answer" type="text" id="answer" value="<?php echo $answer?>"/></td>
          </tr>
            <tr>
              <td colspan="2"><input name="button" type="submit" id="button" value=" 修改 " /></td>
            </tr>
             
      </table>
    </form>
 <?php 
          }
      else{
          $page = isset($_get['page']) ?intval($_get['page']) : 1;
          $num = 5;
          $sql="select * from person";
          $query = $db->query($sql);
          $totalnum = $db->num_rows($query);//记录总数
          $pagenum = ceil($totalnum/$num); //总页数
          $offset = ($page-1) * $num;
          $sql=$sql." limit $offset,$num ";
          $query = $db->query($sql);//取得记录
        ?>
          <table width="639" border="0" cellspacing="0" cellpadding="0"  class="post">
          <tr>
            <td colspan="6">记录总数:<?php echo $totalnum;?>————<a href="personlist.php?action=add">添加人员</a></td></tr>
          <tr><td width="126">登陆账号</td>
          <td width="98">登陆密码</td>
          <td width="115">问题</td>
          <td width="66">答案</td>
          <td width="138">加入时间</td>
          <td width="94">操作</td>
          </tr>
  <?php
        while ($row = $db->fetch_array($query)) {
        ?>
          <tr>
          <td><?php echo $row['login'];?></td>
            <td><?php echo $row['pws'];?></td>
            <td><?php echo $row['question'];?></td>
            <td><?php echo $row['answer'];?></td>
            <td><?php echo $row['addtime'];?></td>
            <td><a href="?action=del&person_id=<?php echo $row['person_id'] ?>&page=<?php echo $page ?>">删除</a>/
            <a href="?action=edit&person_id=<?php echo $row['person_id'] ?>&page=<?php echo $page ?>">修改</a></td>
          </tr>
       <?php
          }
        ?>
    </table>
   </div>
       <div id="pages_btns">
            <div class="pages"><?php showpage($page, $num, $pagenum, $totalnum)?></div>
   </div>
   <?php
   }
   ?>
</div>
</body>
</html>

 

 

 代码如下 复制代码

class dividepage{//分页类
 private $total;//要显示的总记录数
 private $url;//请求的url地址
 private $displaypg;//每页显示的记录数,默认为每页显示10条记录
 private $page;//当前页码
 private $lastpg;//总页数,即最后一页的页码
 private $prepg;//前一页
 private $nextpg;//后一页
 private $firstcount;//记录条数开始的序号从0开始
 private $startd;//记录条数开始的记录号.
 private $stopd;//记录条数结束的记录号.

//构造函数
public function __construct($url, $total, $displaypg){
 $this->url = $url;//请求的url
 $this->total = $total;//总记录数
 //if($displaypg == '')
 $this->displaypg = $displaypg;//每页显示的记录数
 $this->initdividepage();//初始化分页类
 //echo ','.$this->displaypg;
}

//初始化分页类
private function initdividepage(){
 //分析url
 $parse_url = parse_url($this->url);//将url解释为有固定键值对的数组
 $url_query = $parse_url['query'];//取出url中的查询字符串
 if($url_query){//如果有查询字符串,则删除查询字串中当前页的查询字段如:&page=$page或page=$page
  ereg('(^|&)page=([0-9]*)', $url_query, $k);
  $this->page = $k[2];//取得当前页的值
  $url_query = ereg_replace("(^|&)page=$this->page", '', $url_query);//删除查询字串中当前页的查询字段如:&page=$page或page=$page
  $this->url = str_replace($parse_url['query'], $url_query, $this->url);//保留其他的查询字串,
  $this->page = $this->page ? $this->page : 1;//w如果查询字符串中没有当前页的值就设当前页为1
  if($url_query){//如果有其他查询字符串,则以&page=$page形式添加翻页查询字串
   $this->url .= '&page';
  }else{//如果没有其他查询字串,则以page=$page形式添加翻页查询字串
   $this->url .= 'page';
  }
 }else{//如果没有查询字串,则在url后添加?page=$page形式的翻页查询字串
  $this->page = 1;
  $this->url .= '?page';
 }
 $this->lastpg = ceil($this->total / $this->displaypg);//计算总页数,即最后一页的页码
    $this->page = min($this->lastpg, $this->page);//如果当前页大于总页数,则当前页为最后一页的页码
    $this->prepg = $this->page - 1;//上一页为当前页减一www.111cn.net
    $this->nextpg = $this->page + 1;//(($this->page == $this->lastpg) ? $this->lastpg : ($this->page + 1));//下一页为当前页加一,如果当前页为最后一页,则下一页为0
    $this->firstcount = ($this->page - 1) * $this->displaypg;//计算当前页,记录条数开始的记录号,从0开始.
 $this->startd = $this->total ? ($this->firstcount + 1) : 0;//记录开始号从1开始
 $this->stopd = min($this->firstcount + $this->displaypg, $this->total);//记录结束号
 //echo $this->displaypg;
 //echo $this->nextpg.'+=+='.$this->lastpg;
}

public function getpageinfo(){//取得当前页面的基本信息,如:显示第 1-10 条记录,共 23 条记录。
 return '<span class="pageinfostyle">显示第<span class="numstyle">'.$this->startd.'-'.$this->stopd.'</span>条记录,共<span class="numstyle">'.$this->total.'</span>条记录。</span>';
}

public function getcommonpagenav(){//取得通常的分页导航,如:首页 上一页 下一页 尾页
 $commonnav = '';
 if($this->lastpg == 1){//如果只有一页,则返回翻页导航,退出,不显示下一页,上一页等。。。
  return $commonnav;
  break;
 }
 $commonnav = '<a href="'.$this->url.'=1" class="compagestyle">首页</a>';//设置首页导航,page=1
 if($this->prepg){
  $commonnav .= '<a href="'.$this->url.'='.$this->prepg.'" class="compagestyle">上一页</a>';
 }else{
  $commonnav .= '<a class="fcompagestyle">上一页</a>';
 }
 if($this->nextpg <= $this->lastpg){
  $commonnav .= '<a href="'.$this->url.'='.$this->nextpg.'" class="compagestyle">下一页</a>';
 }else{
  $commonnav .= '<a class="fcompagestyle">下一页</a>';
 }
 $commonnav .= '<a href="'.$this->url.'='.$this->lastpg.'" class="compagestyle">尾页</a>';//显示尾页链接
 return $commonnav;
}

//取得跳转分页导航,如:第n页
public function getjumppagenav(){
 //<select name='topage' size='1' onchange='window.location="/test/page.php?page="+this.value'>
 $jumpnav = '<span class="pageinfostyle">到第<select name="topage" size="1" class="topage"  onchange='window.location="'.$this->url.'="+this.value'>'." ";
 for($i = 1; $i <= $this->lastpg; $i++){
  if($i == $this->page){//把当前页的页码作为默认选项
   $jumpnav .= '<option value="'.$i.'" selected>'.$i.'</option>'." ";
  }else{
   $jumpnav .= '<option value="'.$i.'">'.$i.'</option>'." ";
  }
 }
 $jumpnav .= '</select>页,共<span class="numstyle">'.$this->lastpg.'</span>页</span>';
 return $jumpnav;
}

//取得所有的分页导航
public function getallpagenav(){
 $temp =  $this->getpageinfo().$this->getcommonpagenav().$this->getjumppagenav();
 return $temp;
}

//取得当前页需显示的记录,在数据库教程中的限定范围,如0-9
public function getlimitstr(){
 //echo $this->page;
 //echo $this->firstcount;
 
 //echo $this->dispalypg;
 $temp = $this->firstcount.','.$this->displaypg;
 //echo $temp;
 return $temp;
}

}

 

/*
使用实例:

 代码如下 复制代码
*$result=mysql教程_query("select * from tb_pagetest");//从数据库中查询所需显示的数据
*$total=mysql_num_rows($result);//查询到的数据的总条数
*$pagesize = 5;//每页显示的记录条数
*$url = $_server['request_uri'];//请求的uri
*
*$dividepageclass = new dividepage($url, $total, $pagesize); //创建分页类,(类能自动初始化)
*$limitstr = $dividepageclass->getlimitstr();//取得当前页要显示的记录开始序号和每页显示条数,如:0, 5(显示从0开始的5条记录)
*echo $dividepageclass->getallpagenav();//显示所有分页导航条,
*如:显示第11-13条记录,共13条记录。首页 上一页 下一页 尾页 到*第 1 页,共 3 页
*$sql = 'select * from tb_pagetest limit '.$limitstr;
*$result=mysql_query($sql);//从数据库中取得当前页要显示的记录集,然后显示就ok
*如:
*while($row=mysql_fetch_array($result))
*echo "<hr><b>".$row[title]." | ".$row[author];

 

 

[!--infotagslink--]

相关文章

  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • php简单数据操作的实例

    最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
  • 解决Mybatis 大数据量的批量insert问题

    这篇文章主要介绍了解决Mybatis 大数据量的批量insert问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-09
  • Antd-vue Table组件添加Click事件,实现点击某行数据教程

    这篇文章主要介绍了Antd-vue Table组件添加Click事件,实现点击某行数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-17
  • 详解如何清理redis集群的所有数据

    这篇文章主要介绍了详解如何清理redis集群的所有数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-18
  • vue 获取到数据但却渲染不到页面上的解决方法

    这篇文章主要介绍了vue 获取到数据但却渲染不到页面上的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-19
  • php把读取xml 文档并转换成json数据代码

    在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
  • mybatis-plus 处理大数据插入太慢的解决

    这篇文章主要介绍了mybatis-plus 处理大数据插入太慢的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-18
  • postgresql数据添加两个字段联合唯一的操作

    这篇文章主要介绍了postgresql数据添加两个字段联合唯一的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04
  • java 画pdf用itext调整表格宽度、自定义各个列宽的方法

    这篇文章主要介绍了java 画pdf用itext调整表格宽度、自定义各个列宽的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-31
  • Vue生命周期activated之返回上一页不重新请求数据操作

    这篇文章主要介绍了Vue生命周期activated之返回上一页不重新请求数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-26
  • C#实现动态生成表格的方法

    这篇文章主要介绍了C#实现动态生成表格的方法,是C#程序设计中非常实用的技巧,需要的朋友可以参考下...2020-06-25
  • c# socket网络编程接收发送数据示例代码

    这篇文章主要介绍了c# socket网络编程,server端接收,client端发送数据,大家参考使用吧...2020-06-25
  • vue 数据(data)赋值问题的解决方案

    这篇文章主要介绍了vue 数据(data)赋值问题的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
  • Python3 常用数据标准化方法详解

    这篇文章主要介绍了Python3 常用数据标准化方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-24
  • 解决vue watch数据的方法被调用了两次的问题

    这篇文章主要介绍了解决vue watch数据的方法被调用了两次的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-07
  • node.js从数据库获取数据

    这篇文章主要为大家详细介绍了node.js从数据库获取数据的具体代码,nodejs可以获取具体某张数据表信息,感兴趣的朋友可以参考一下...2016-05-09
  • 分享MYSQL插入数据时忽略重复数据的方法

    使用下以两种方法时必须把字段设为”主键(PRIMARY KEY”或”唯一约束(UNIQUE)”。1:使用REPLACE INTO (此种方法是利用替换的方法,有点似类于先删除再插入) 复制代码 代码如下:REPLACE INTO Syntax REPLACE [LOW_PRIO...2013-10-04
  • PostgreSQL 恢复误删数据的操作

    这篇文章主要介绍了PostgreSQL 恢复误删数据的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-18
  • 基于jquery实现表格无刷新分页

    这篇文章主要介绍了基于jquery实现表格无刷新分页,功能实现了前端排序功能,增加了前端搜索功能,感兴趣的小伙伴们可以参考一下...2016-01-08