2016-04-09 7 views
1

私はt1のmysqlテーブルを持っています。whileループのArray_rand()は値を返しません?

+-------+-------------+ 
| ID | type  | 
+---------------------+ 
| 1  | a   | 
| 2  | a   | 
| 3  | b   | 
| 4  | a   | 
+---------------------+ 

そして私はタイプAでarray_randしたい、以下のようにarray_rand(1,2,4);

ように私は私のコーディングをしてみてください:

以下

はデータであり、私はw3schoolから$random_keysを使用

$qadfirst = DB::query("SELECT * FROM ".DB::table('t1')." WHERE type = 'a'"); 
while($radfirst = DB::fetch($qadfirst)){ 
    $arr = array($radfirst['id']); 
    implode(",",$arr); 
    $random_keys=array_rand($arr,1); 
    echo $arr[$random_keys[0]]."<br>"; 
}; 

、まだ動作していない、どのようにコーディングの作業を行うには?ありがとうございました。

+0

_ "私はw3schoolから[...]を使用しています" _ - [faking Adam Savageの声] _Well、あなたの問題があります!_ - http://www.w3fools.com/ - あなたは本当に試してみてください。サイト。 – CBroe

答えて

1

この行 $arr = array($radfirst['id']);は、ループの最後でそれに割り当てられた唯一の値を持つ配列になり、ループ内部データベースからIDを取得 $arr毎の値を置き換えます。あなたがIDをループが何らかの変数あなたを、データベースからフェッチIDを取得し、$arrに型配列を、それを割り当て、$iでインデックス値をインクリメントまたはとして

$arr array(1) 
    integer 4 

この

<?php 
    $i = 0; 
    while($radfirst = DB::fetch($qadfirst)){ 
    $arr[$i++] = $radfirst['id']; 
    } 
    $random_keys = array_rand($arr, 1); 
    echo $arr[$random_keys]."<br>"; 
?> 

ような何かを行います選択した。ループの外

は、ランダムなキーを取得し、$random_keysに割り当てるarray_rand($arr, 1)を使用してrandom_keysの値が$arrための指標値として使用します。 $arr[$random_keys]

+0

私の問題を解決してください、ありがとう! –

+0

ようこそ。それを知ってうれしいです – Fil

関連する問題