1. 程式人生 > >將資料存入redis進行讀取資料

將資料存入redis進行讀取資料

<?php
    header("content-type:text/html;charset=utf8");
    $page=isset($_GET['page'])?$_GET['page']:1;//判斷有沒有頁數,如果沒有頁數的話從一開始
    $redis = new Redis();//例項化redis
    //使用memcache方法
    $redis->connect("127.0.0.1",6379);//建立連線主機IP和redis的埠號
    //$redis->flushAll();die;//清除redis
  //如果取得的name==""的話則先建立redis將搜尋出來的資料進行存入redis中
    if($redis->get('name')==""){
       //利用pdo進行連線資料庫
        $dsn = "mysql:host=127.0.0.1;dbname=php9";//資料庫地址和資料庫名稱
        $pdo = new PDO($dsn,'root','root',array(PDO::MYSQL_ATTR_INIT_COMMAND=>'set names utf8'));//MySQL賬號密碼和utf-8的格式
        $sql="SELECT region_id,parent_id,region_name from ecs_region";//查詢表中的資料
        $result=$pdo -> query($sql);//執行sql語句
        $result->setFetchMode(PDO::FETCH_ASSOC);
        $data = $result->fetchAll();//用陣列的形式將值展現出來
        $s = json_encode($data);//轉化成json資料,因為中文轉義了,所以看不清楚
        //echo $s;die;
        $redis->set("name",$s);//將redis資料存入redis中
		    $num = 20;//每頁20條資料
        $sss = json_decode($redis->get("name"),true);
        foreach($sss as $k=>$v){
            $arr[]=$v;
        }
        //計算總條數
        $cou = count($arr);
        //想上取整計算總頁數
        $page_num=ceil($cou/$num);//可以分為幾頁
        if($page<=0){
            $page=1;
        }
        if($page>$page_num){
            $page=$page_num;
        }
        $start = ($page-1)*$num;
        $data=array_slice($arr,$start,$num);
        //header("location:http://www.whd.com/mem.php?page=1");
    }else{
        //echo "!";
        //每頁顯示多少資料;
        $num = 20;
        $sss = json_decode($redis->get("name"),true);//因為上邊已經有資料了,所以直接get取值就可以了
        foreach($sss as $k=>$v){
            $arr[]=$v;
        }
        //計算總條數
        $cou = count($arr);
        //想上取整計算總頁數
        $page_num=ceil($cou/$num);
        if($page<=0){
            $page=1;
        }
        if($page>$page_num){
            $page=$page_num;
        }
        $start = ($page-1)*$num;
        $data=array_slice($arr,$start,$num);
    }
?>
<table align="center" border="1">
    <?php foreach($data as $k=>$v){?>
        <tr>
            <td><?php echo $v['region_id']?></td>
            <td><?php echo $v['parent_id']?></td>
            <td><?php echo $v['region_name']?></td>
        </tr>
    <?php }?>
</table>
<p align="center">
    <b>共<?php echo $page_num;?>頁</b>
    <a href="./2016-7-3.php?page=1">首頁</a>
    <a href="./2016-7-3.php?page=<?php echo $page-1; ?>"><?php if($page==1){ echo "";}else{ echo "上一頁"; }?></a>
    <a href="./2016-7-3.php?page=<?php echo $page+1; ?>">下一頁</a>
    <a href="./2016-7-3.php?page=<?php echo $page_num; ?>">尾頁</a>
    <b>當前第<?php echo $page;?>頁</b>
</p>