1

データベースからランダムな値を取得する次のコードがあります。

$result = mysqli_query($con,"SELECT column1 FROM table1
ORDER BY RAND()
LIMIT 1");

while($row = mysqli_fetch_array($result))
{
 echo $row['column1'];
 echo "<br>";
}

現時点では、合計で約 10 個の値しかありません。更新時に複数回連続して表示されることがあります。

現在の値ではないランダムな値を表示するようにクエリを修正できますか?

4

1 に答える 1

1

そのためには、最後の行をどうにかして覚えておく必要があります。次に、このようなことをします

$result = mysqli_query($con,"SELECT column1 FROM table1
where id_of_your_row != ".mysqli_real_escape_string($id_of_your_last_row)."
ORDER BY RAND()
LIMIT 1");

最後の行を覚えておくために、セッションを使用できます。

コード全体は次のようになります。

// セッションを開始する必要があります

$result = mysqli_query($con,"SELECT column1 FROM table1
where column1 != ".(isset($_SESSION["lastid"]) ? mysqli_real_escape_string($_SESSION["lastid"]) : '')." ORDER BY RAND()
LIMIT 1");

while($row = mysqli_fetch_array($result))
{
 echo $row['column1'];
 $_SESSION["lastid"] = $row['column1'];
 echo "<br>";
}
于 2013-06-12T23:07:43.703 に答える