我正在制作一个随机的帖子生成器,代码如下所示:
<?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/