首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP MySQL表将行中的值合并到一个表中

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

Stack Overflow用户
提问于 2012-04-10 08:51:57
回答 2查看 93关注 0票数 0

我想要做的是显示5个随机图像与文本的某个数字,而不是重复。图像和文本的链接将存储在数据库中。我遇到的问题是,我需要将每个ID值放入单个PHP数组中,以便打乱ID并随机选择5,但我总是无法将它们组合成一个数组,如果我有3行,我最终会得到3个数组。

以下是一个失败代码的示例,其中包含3行ID为1,2,4的代码:

代码语言:javascript
复制
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));
    }
};

这是输出:

代码语言:javascript
复制
Array ( [0] => 1 [1] => ) Array ( [0] => 2 [1] => ) Array ( [0] => 4 [1] => )

这是所需的输出:

代码语言:javascript
复制
Array ( [0] => 1 [1] => 2 [2] => 4)

我想这是一个新手的问题,但我已经尽了最大的努力寻找解决方案,但失败了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-10 08:55:29

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

代码语言:javascript
复制
SELECT * FROM ads ORDER BY RAND() LIMIT 5
票数 0
EN

Stack Overflow用户

发布于 2012-04-10 09:06:30

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

代码语言:javascript
复制
array_push($arr,$numbers['Id']);

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

代码语言:javascript
复制
$arr = array();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10081719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档