1

私はBBDDを繰り返さずにランダムな行のグループを取得しようとしていますが、最後に、コードは私に質問を与えます...しかし、いくつかのエラーがあります....誰かが私を助けることができますか?PDエラーは太線で示されています。(未定義のオフセット(各反復で))よろしくお願いします

mysql_query('SET CHARACTER SET utf8');
$sql=mysql_query("SELECT * FROM Questions");
$num_rows = mysql_num_rows($sql);
$max_value = (int )$num_rows;
$ids[] = array(5);
for ($i = 0; $i < 5; $i++) {
    $repetido = true;

    while($repetido == true){
    $repetido = false;
    $quest_id = rand ( 1, $max_value);//Obtiene el aleatorio

    for ($j = 0; $j < count($ids); $j++) {
        **if ($quest_id == $ids[$i])  $repetido = true;**

    }

    }
    $ids[$i] = $quest_id;
    $sql=mysql_query("SELECT * FROM Questions WHERE id_quest = $quest_id");
    $row = mysql_fetch_array($sql);

    $output[$i]=$row;
}



    echo(json_encode($output));
mysql_close();
4

3 に答える 3

1
$sql = mysql_query("SELECT DISTINCT * FROM Questions ORDER BY RAND() LIMIT 5");
$output = array();
for ($i = 0; $i < 5; $i++) {
    $output[] = mysql_fetch_array($sql);
}

echo(json_encode($output));
mysql_close();
于 2012-04-14T16:33:23.843 に答える
1

初めに :

$ids[] = array(5);

あなたが思っていることをしません、それはインデックス0と値5を持つ1つの要素で配列を作成するだけです。

ランダムな行が5つだけ必要な場合は、MySqlを使用して簡単に実行できます。

SELECT * FROM Questions ORDER BY RAND() LIMIT 5;
于 2012-04-14T16:34:28.333 に答える
0

後:

$ids[] = array(5);

追加:

var_dump( $ids ); exit;

@joeframbachソリューションを使用する

于 2012-04-14T16:40:33.687 に答える