我正处于类图的各个阶段,我正在为我计划创建的网站创建类图。直到我想要有一个显示在线用户的网页的阶段,一切正常。显示所有在线用户的用户名和个人资料图片。我不确定我将如何做到这一点,图像是我迄今为止所拥有的。我将不胜感激任何帮助或指导。
这是我当前的班级图http://imgur.com/sgjJwkc
答案 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();
}
?>