0

私がやりたいのは、特定の数のテキストを含む5つのランダムな画像を繰り返さずに表示することです。画像とテキストへのリンクはデータベースに保存されます。私が遭遇した問題は、IDをシャッフルしてランダムな5を選択するために、すべてのID値を単一のPHP配列に入れる必要があることですが、3行ある場合、それらを1つの配列に結合することに失敗し続けます。 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)

それは初心者の質問だと思いますが、私は解決策を見つけるために最善を尽くして失敗しました。

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 に答える