【问题标题】:Limit & Order By Random not showing correct resultLimit & Order By Random 没有显示正确的结果
【发布时间】:2016-06-05 11:06:54
【问题描述】:

我有这样的查询

$result = mysql_query("select * from tenant where totalrating>=".$jum." ORDER BY RAND() LIMIT 0,".$limit2."");
while($row = mysql_fetch_array($result))
{
   $result2 = mysql_query("SELECT * from preorder where id_tenant='".$row['id_tenant']."' and id_acara='$idacara'");
   while($row2 = mysql_fetch_array($result2))
   {
       echo row['order'];
   }
}

我有变量$limit来设置我的限制,我的问题是如果我设置限制5,结果只显示4个数据,如果我刷新页面,结果将显示5个数据,如果我再次刷新页面,结果再次显示 4。有人可以给我一个解释吗? 谢谢你,祝你有美好的一天!

【问题讨论】:

  • 我想,你的查询没问题。
  • 您的查询看起来不错。请打印出变量$limit2$jum 并在第一个while 中打印一些内容。 $result2 可能没有结果;
  • $limit2 = 5 和 $jum=3。我的目标是我想获得总评分 >=3 的数据,并且只限制 5 个数据

标签: php mysql


【解决方案1】:

使用时:

 ORDER BY RAND() LIMIT 0,".$limit2.""

那么你每次都得到随机记录,所以,可能其中一些在 preorder 表中没有对应的记录。

我建议您在代码中添加另一行,以确保您始终获得 5 个结果

$result = mysql_query("select * from tenant where totalrating>=".$jum." ORDER BY RAND() LIMIT 0,".$limit2."");
while($row = mysql_fetch_array($result))
{
   echo "<br />Getting results preorders of id_tenant=". $row['id_tenant'] . " and idacara=$idacara <br />";

   $result2 = mysql_query("SELECT * from preorder where id_tenant='".$row['id_tenant']."' and id_acara='$idacara'");
   while($row2 = mysql_fetch_array($result2))
   {
       echo row['order'];
   }
}

这样你可以注意到你总是得到 5 个结果,其中一些在 preorder 表中没有记录

【讨论】:

    猜你喜欢
    • 2014-03-25
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多