Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP MySQL表将行中的值合并到单个表中_Php_Mysql - Fatal编程技术网

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

PHP MySQL表将行中的值合并到单个表中,php,mysql,Php,Mysql,我想做的是显示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(

我想做的是显示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)

我猜这是一个noob问题,但我已经尽了最大努力试图找到解决方案,但失败了。

简单解决方案:在MySQL查询中使用ORDER by RAND直接洗牌结果:

SELECT * FROM ads ORDER BY RAND() LIMIT 5

我认为你应该看看Alp的解决方案,但是要直接回答你的问题,把这个放在你的while循环中

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

$arr = array();
$arr = array();