我正在尝试从我的表格中选择行引用和作者并回显它
我的目标是创建一个随机引用生成器并显示实际引用和作者。
我在我的表格中输入了 25 个引号,共 3 行(ID、引号、作者)
我的代码如下,我一直收到资源 ID #9 错误
<?php
mysql_select_db(name of database);
$quotes = "SELECT author AND quote FROM inspirational_quotes ORDER BY RAND() LIMIT 1";
$result = mysql_query($quotes);
WHILE ($row = mysql_fetch_array($result)):
ENDWHILE;
echo "$result";
?>
请帮忙
最佳答案
首先,我觉得你想要
<?php
mysql_select_db(name of database);
$quotes = "SELECT author,quote FROM inspirational_quotes ORDER BY RAND() LIMIT 1";
$result = mysql_query($quotes);
WHILE ($row = mysql_fetch_array($result)):
ENDWHILE;
echo "$result";
?>
但我还有一个建议
预加载所有报价 ID
CREATE TABLE quoteID
(
ndx int not null auto_increment,
id int not null,
PRIMARY KEY (ndx)
);
INSERT INTO quoteID (id) SELECT id FROM inspirational_quotes;
现在根据 quoteID 表中的 id 选择
SELECT B.author,B.quote FROM quoteID A INNER JOIN inspirational_quotes B
USING (id) WHERE A.ndx = (SELECT CEILING(MAX(ndx) * RAND()) FROM quoteID);
这应该可以很好地扩展,因为 @rnd_id 的返回值来自 quoteID 表中没有间隙的 ID 列表。
<?php
mysql_select_db(name of database);
$quotes = "SELECT B.author,B.quote FROM quoteID A INNER JOIN "
. "inspirational_quotes B USING (id) "
. "WHERE A.ndx = (SELECT CEILING(MAX(ndx) * RAND()) FROM quoteID)";
$result = mysql_query($quotes);
$row = mysql_fetch_array($result);
echo "$result";
?>
试一试!!!
关于php - 从 MySQL 中获取随机行并用 PHP 显示它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14614453/