从mysql中获取随机用户的新帖子

时间:2015-11-28 14:39:58

标签: php android mysql json

我想在上传帖子时抓取并显示不同用户的帖子..我可以通过用户ID访问他们的帖子,但帖子是按顺序而不是随机或新帖子。例如,如果2个用户已经发布了4次,3次第一次用户和1次第2次此序列第1个用户发布,第2个用户发布,1个用户,1个用户,我的查询将首先返回用户1的3个帖子然后单个帖子用户2与原始序列和时间无关(旧/新)。

我的查询是

//this is my table -> user_post(userid,post_id,post,time) 

$query = "SELECT * FROM user_post ORDER BY (time) DESC WHERE userid = '$user_id'";

并且我只想加载 4个最新的帖子,当我下次刷新该字段时,必须加载后4个帖子。 这是一个基于Android客户端服务器的应用程序,我正在使用volley进行http调用并使用JSON交换数据。

3 个答案:

答案 0 :(得分:0)

您是否尝试使用limit条款? 你的代码就像:

$query = "SELECT * FROM user_post ORDER BY (time) DESC WHERE userid = '$user_id' LIMIT 4";

答案 1 :(得分:-1)

使用循环

$counter = 1;
$offset = 4;

 while (($user = $db->fetch($query)) )
  {
   $start = $counter * 4;    
   $query = "SELECT * FROM user_post ORDER BY (time) DESC WHERE userid = '$user_id' LIMIT '$start','$offset'";    
   $counter++;
  }

答案 2 :(得分:-2)

您需要在查询中包含LIMIT子句:

$query = "SELECT * FROM user_post ORDER BY (time) DESC WHERE userid = '$user_id' LIMIT 0,4";

在每个请求中,您都会计算$lastLoadedRow中已加载的行数。你接下来几次加载你会做:

... LIMIT $lastLoadedRow,4;
... LIMIT $lastLoadedRow,4;
... LIMIT $lastLoadedRow,4;