0

我想要做的是显示5个随机图像,其中包含一定数量的文本而不重复。图像和文本的链接将存储在数据库中。我遇到的问题是我需要将每个 ID 值放入单个 PHP 数组中,以便对 ID 进行洗牌并选择随机 5,但是如果我有 3 行,我一直无法将它们组合成一个数组最多3个数组。

这是一个包含 3 行 ID 为 1、2、4 的失败代码示例:

function getAll () {
$query = mysql_query("SELECT * FROM ads") or die(mysql_error());
$myarray = array();
    while ($numbers = mysql_fetch_array($query)){
    $arr = $numbers['ID'].",";
    print_r (explode(",", $arr));
    }
};

这是输出:

Array ( [0] => 1 [1] => ) Array ( [0] => 2 [1] => ) Array ( [0] => 4 [1] => )

这是所需的输出:

Array ( [0] => 1 [1] => 2 [2] => 4)

猜猜这是一个菜鸟问题,但我已尽力寻找解决方案但失败了。

4

2 回答 2

0

简单的解决方案:直接ORDER BY RAND()在 MySQL 查询中使用:

SELECT * FROM ads ORDER BY RAND() LIMIT 5
于 2012-04-10T00:55:29.170 回答
0

我认为您应该查看 Alp 的解决方案,但要直接回答您的问题 - 将其放入您的while循环中。

array_push($arr,$numbers['Id']);

但首先在循环之前声明变量:

$arr = array();
于 2012-04-10T01:06:30.293 回答