2012-04-10 10 views
0

私がやりたいことは、テキストを繰り返し表示せずに特定の番号のテキストを5つランダムに表示することです。画像とテキストへのリンクは、データベースに格納されます。私が実行した問題は、IDをシャッフルしてランダムな5を選択するために、すべてのID値を単一のPHP配列に配置する必要があるということです。 3つのアレイを備えています。PHP MySQLテーブルテーブルの値を1つのテーブルにまとめる

これは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) 

答えはノー質問ですが、私は解決策を見つけようとして最善を尽くし失敗しました。

答えて

0

簡単な解決策:直接MySQLのクエリでORDER BY RAND()を使用して、結果をシャッフル:

SELECT * FROM ads ORDER BY RAND() LIMIT 5 
0

は、私はあなたがアルプのソリューションを見てすべきだと思うが、直接あなたの質問に答えるために - あなたのwhileループでこれを置きます。

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

が、最初のループの前に変数を宣言:

$arr = array(); 
関連する問題