php - MySQLi 圆 Rand()

标签 php mysql mysqli

我正在学习 PHP 和 MySQLi。在简单的网站上工作,我在 mysqli 中使用 Rand() 时遇到问题。

SELECT * FROM posts LEFT JOIN users ON users.user_id=posts.uid WHERE posts.uid=users.user_id and posts.active=1 and catid=6 AND feat=1 AND pid >= Round(  Rand() * ( SELECT Max( pid ) FROM posts )) limit 1

这就是我从数据库中选择帖子并在网站上随机显示它们的方式,但问题是当假设 2 个帖子随机显示时,第 3 个帖子(刷新)会说行中没有帖子并且什么也不显示,我的案例。

 if($CountRows==0){ ?> <div class="col-note">No more posts.</div>
   <?php } ?> 

当我再次刷新网站后,它会随机显示其中一篇帖子,一切正常。

我的问题是,如何显示随机新闻而不显示“没有更多帖子”的注释。因此,如果有 2 个帖子,它应该始终从第 1 个帖子随机切换到第 2 个帖子。

最佳答案

为什么不使用ORDER BY RAND()?它对查询结果进行随机排序

还使用普通联接而不是左联接并删除“posts.uid=users.user_id”。

关于php - MySQLi 圆 Rand(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28068257/

相关文章:

php - mysqli_fetch_assoc() 发出警告,它需要 mysqli_result,但给出了对象

javascript - 需要一些有关 Highcharts JSON 格式的指示

php - Laravel 从数据库中获取 Slug

php - 在 yii2 查询中在哪里设置 SQL_BIG_SELECTS?

javascript - WAMP 上的 PHP 更喜欢相同的随机数组元素?

C# 将多个对象保存到数据库后获取 id 的列表或数组

php - 如何从多个表中高效地访问用户数据

mysql - 通过获取 ListView 中特定列中的值与我的数据库中的值的总和来更新数据库

php - MySQL 如果?陈述

PHP Mysqli->query() 对于 SELECT INNER JOIN 返回 false,Mysqli->error 返回空