PHP MySQL 表将行中的值合并到一个表中


PHP MySQL table uniting values from rows in a single table

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

下面是 ID 为 1,2,4 的 3 行失败代码的示例:

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)

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

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

SELECT * FROM ads ORDER BY RAND() LIMIT 5

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

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

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

$arr = array();