php - 如何从 MySQL 中检索 1 个随机行

标签 php mysql arrays

我正在制作一个随机的帖子生成器,代码如下所示:

<?php

$idea_generator = array();

    $ideas_sql = "SELECT * FROM Ideas";
    $query = mysql_query($ideas_sql);



        while($row = mysql_fetch_assoc($query)) {
                $id = $row['id'];
                $name = $row['name'];
                $description = $row['description'];
                $keywords = $row['keywords'];
                //Need to add a link function




            array_push($idea_generator, $name);
                sort($idea_generator);
                $number = count($idea_generator);
                //randomly selects idea
                $winner = $idea_generator[rand(0, $number -1)];
                print strtolower($winner);

                }

?>

我的问题是这段代码以不同的顺序从测试数据库中返回了 3 个项目。该项目旨在从该数据库中仅取出 1 项。我应该坚持使用这个 php 数组方法还是有更简单的方法来实现这个目标。

最佳答案

将您的查询更改为此以随机检索一行:

$ideas_sql = "SELECT * FROM Ideas ORDER BY RAND() LIMIT 1;";

由于此查询仅返回一行,因此您不再需要在 PHP 代码中随机选择一行。您的最终代码可能是这样的:

$ideas_sql = "SELECT * FROM Ideas ORDER BY RAND() LIMIT 1;";
$query = mysql_query($ideas_sql);

$row = mysql_fetch_assoc($query);
// This is your 'winning' row

$id = $row['id'];
$name = $row['name'];
$description = $row['description'];
$keywords = $row['keywords'];

关于php - 如何从 MySQL 中检索 1 个随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21211812/

相关文章:

C#内存中的多维数组排列

PHP - 如何让我的用户保持登录状态?

PHP:gzdeflate 在多台机器上是否安全?

mysql - 按日期顺序排序时,“使用临时”会减慢查询速度

java - 如何检查数据库事务中的数据?

c++ - 如何缩放二进制数组以保持值

javascript - 将单个值与数组进行比较

php - 这是什么类型的代码?

php - 从 MySQL 时间戳获取时间并以小时、分钟等显示?

Mysql Casting Performance Benchmark问题/数据架构