使用页面创建网站以显示在线用户,包括用户名和图片

时间:2013-12-02 23:07:00

标签: php mysql database web social-networking

我正处于类图的各个阶段,我正在为我计划创建的网站创建类图。直到我想要有一个显示在线用户的网页的阶段,一切正常。显示所有在线用户的用户名和个人资料图片。我不确定我将如何做到这一点,图像是我迄今为止所拥有的。我将不胜感激任何帮助或指导。

这是我当前的班级图http://imgur.com/sgjJwkc

2 个答案:

答案 0 :(得分:2)

我会在每次加载页面时更新用户行中的时间戳,并且在线上用户的负载上我会检查最近的时间戳。

伪代码:     SELECT用户名,头像FROM users WHERE last_active> = time() - 900;

答案 1 :(得分:2)

您还可以为用户的状态(登录,注销)设置一个列,并使其在0(已注销)和1(已登录)之间切换。您可以使用AJAX调用每5秒(当然在后台)更新此信息。像这样:

//JAVASCRIPT
<script>
    $(document).ready(function() {
        setInterval(function() {
            $.post('Path To PHP File', {x : Pass Variables, y: If You Want}, function(res)
                //Do something with the result (res)
            );
        }, 5000);
    });
</script>

//PHP FILE
<?php
//If you passed any variables to the script:
$x = $_POST['x'];
$y = $_POST['y'];

//Connect to your database
$dbConn = "I hope you're using PDO for this.";

//Create your query
$sql = "SELECT * FROM users WHERE status=1";
$res = $dbConn->prepare($sql);
$res->execute();

//Return/echo results
foreach($res as $x) {
    echo "<div id='useTheIdToStyleTheResults'>".$x['name']."</div>";
}
?>

res是你的php脚本返回的内容。您可以在该脚本中的数据库上运行SQL查询,以获取所有登录的用户并使用foreach()循环将每个项目作为html div元素返回。根据自己的喜好设计这些元素,然后就可以了。如果您有疑问,请询问!

编辑:

在阅读了一些您的问题之后,SQL JOIN和UNION是您可能想要研究的几个概念。 http://www.w3schools.com/sql/sql_join.asp

编辑#2:

    

//Define Variables
$hostname = '127.0.0.1';
$username = 'userName';
$password = 'passWord';
$dbname = 'database in use';

//Create Connection
try {
    $con = new PDO("mysql:host=$hostname;dbname=$dbname",$username,$password);
    $con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    //echo "Connected to database";  //Uncomment statement to the left to check for connection
} catch (PDOException $e) {
    print "Unable to connect: " . $e->getMessage();
    mysql_close($con);
    die();
}
?>