簡體   English   中英

PHP MySQL 表將行中的值合並到一個表中

[英]PHP MySQL table uniting values from rows in a single table

我想要做的是顯示 5 個隨機圖像,其中包含一定數量的文本而不重復。 圖像和文本的鏈接將存儲在數據庫中。 我遇到的問題是我需要將每個 ID 值放入單個 PHP 數組中以便洗牌並隨機選擇 5,但我一直無法將它們組合成一個數組,如果我有 3 行我結束最多 3 arrays。

這是一個包含 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));
    }
};

這是 output:

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

這是所需的 output:

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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM