夺命雷公狗---Redis---7-案例操作2(用户列表页,实现分页显示已经关注功能)完

redis.php(公共文件)

<?php
    $redis = new Redis();
    $redis -> connect('localhost',6379);
    $redis -> auth('123456');//因为我修改了配置文件的密码是123456

login.php(登录页面)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <form action="action.php?act=login" method="post">
            <table>
                <caption><h1>用户登录</h1></caption>
                <tr>
                    <th>name</th>
                    <td><input type="text" name="username"></td>
                </tr>
                <tr>
                    <th>pass</th>
                    <td><input type="password" name="pass"></td>
                </tr>
                <tr>
                    <td><input type="submit" value="提交"></td>
                    <td><input type="reset" name="重置"></td>
                </tr>
            </table>
        </form>
    </body>
</html>

index.php(首页)

<?php
    require "redis.php";
    //取出用户列表,实现分页显示
    //1.计算总的用户数,
    $count = $redis -> lsize('userid');
    //echo $count;die;
    //2.定义每页显示的记录数
    $perpage = 2;
    //3.计算总的页数
    $pagecount = ceil($count/$perpage);
    //4.定义当前页
    $page = isset($_GET['page'])?(max(1,min($pagecount,$_GET['page']))):1;
    //echo $page;
    //5.取出当前页的数据,思路,取出链表里面的id,根据id拼接哈希,取出哈希里面的内容。
    //$redis -> lrange('userid',0,1); 这样样是第一页的数据  0代表偏移量 算法 ($page-1) * $perpage =2
    //$redis -> lrange('userid',2,3); 这样样是第一页的数据 算法 ($page-1) * $perpage =2
    //$redis -> lrange('userid',4,5); 这样样是第一页的数据 算法 ($page-1) * $perpage =4
    //($page-1)*$perpage-1=1
    //($page-1)*$perpage-1=3
    //如果每页显示5个
    //$redis -> lrange('userid',0,4);    ($page -1) *$perpage = 0   5
    //$redis -> lrange('userid',5,9);    5+5-1=9
    //$redis -> lrange('usesrid',10,14); 10+5-1
    $offset = ($page-1)*$perpage;
    $N=($page-1)*$perpage+$perpage-1;
    $ids = $redis -> lrange('userid',$offset,$N);//返回的是当前显示数据的id的值,是一个一维数组
    //echo "<pre>";
    //print_r($ids);
    //取出当前页面的数据
    $data = array();

    foreach($ids as $v){
        $data[] = $redis -> hgetall('user:id:'.$v);//返回的是一行数据,也就是一个一维数组
    }
    //var_dump($ids);die;
    session_start();


    //关注程序的开始
    $mid = $_SESSION['user_id'];  //取出登录用户的id
    $ids = $redis ->smembers('myguan:'.$mid);  //返回的是一维数组
    $guan =array();
    foreach($ids as $v){
        $guan[] = $redis -> hgetall('user:id:'.$v);//返回是一行数据,也就是一个一维数组
    }
    //关注程序结束
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <a href="edit.php?id=<?php echo $_SESSION['user_id']; ?>">尊敬的:<?php echo $_SESSION['username']; ?>欢迎您的归来!</a>
        <a href="action.php?act=sunll">退出</a><br />
        <table width="500" border='1'>
                <caption><h1>用户列表</h1></caption>
                <tr>
                    <th>id</th>
                    <th>name</th>
                    <th>age</th>
                    <th>操作</th>
                </tr>
                <?php foreach($data as $v){ ?>
                <tr>
                    <td><?php echo $v['id']; ?></td>
                    <td><?php echo $v['username']; ?></td>
                    <td><?php echo $v['age']; ?></td>
                    <td align="center"><a href="edit.php?id=<?php echo $v['id']; ?>">编辑</a>/
                    <a href="action.php?act=del&id=<?php echo $v['id']; ?>">删除</a>/
                    <a href="action.php?act=guan&id=<?php echo $v['id']; ?>">添加关注</a>
                    </td>
                </tr>
                <?php } ?>
                <tr align="right">
                    <td colspan="4">
                        <a href="?page=<?php echo max(1,$page-1); ?>">上一页</a><a href="?page=<?php echo min($page+1,$pagecount); ?>">下一页</a>
                    </td>
                </tr>
            </table>
            <hr />

            <b>我关注的人</b>
            <?php foreach($guan as $v){
                 echo $v['username'].'-----还有-----';
            }?>
    </body>
</html>

reg.php(注册页面)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
        <form action="action.php?act=reg" method="post">
            <table>
            <caption><h1>用户注册</h1></caption>
                <tr>
                    <th>name</th>
                    <td><input type="text" name="username"></td>
                </tr>
                <tr>
                    <th>pass</th>
                    <td><input type="password" name="pass"></td>
                </tr>
                <tr>
                    <th>age</th>
                    <td><input type="text" name="age"></td>
                </tr>
                <tr>
                    <td align="rigth"><input type="submit" value="注册" /></td>
                    <td align="center"><input type="reset" value="重置"></td>
                </tr>
            </table>
        </form>
    </body>
</html>

edit.php(编辑页面)

<?php
    require "redis.php";
    $ids = $_GET['id'];
            $data = array();        
            $data[] = $redis -> hgetall('user:id:'.$ids);

?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <form action="action.php?act=edit" method="post">
            <table width="500" border='1' >
                <caption><h1>修改中心</h1></caption>
                <tr>
                    <th>name</th>
                    <th>age</th>
                    <th>pass</th>
                </tr>
                <?php foreach($data as $data ){ ?>
                <tr>
                    <td><input type="text" name="username" disabled value="<?php echo $data['username']; ?>"></td>
                    <td><input type="text" name="age" value="<?php echo $data['age']; ?>"></td>
                    <td><input type="password" name="pass" value="<?php echo $data['password']; ?>"></td>
                    <input type="hidden" name="id"  value="<?php echo $ids; ?>">
                </tr>
                <?php } ?>
                </foreach>
                <tr align="center">
                    <td colspan="3"><input type="submit" value="修改">&nbsp;&nbsp;&nbsp;<input type="reset" value="重置"></td>
                    
                </tr>
            </table>
        </form>
    </body>
</html>
原文地址:https://www.cnblogs.com/leigood/p/4960714.html