PHP を使用して配列をランダムにシャッフルする必要があります。関心のあるフィールドが呼び出された場合url
:
$req = mysql_query("SELECT url FROM images WHERE user_id = '{$row['userID']}'");
$images = array();
while($image = mysql_fetch_array($req)) {
$images[] = $image['url'];
}
shuffle($images);
$tenImages = array_slice($images, 0, 10);
編集。また、準備済みステートメントに PDO を使用することを検討してください。
アップデート。一度に 10 枚の画像を選んでみませんか?
$images = array();
while(count($images) < 10) {
$req = mysql_query("SELECT url FROM images WHERE user_id = '{$row['userID']}' LIMIT " . rand(1, 10000) . ", 1");
$image = mysql_result($req, 0, 0);
if(!in_array($image)) {
$images[] = $image;
}
}
より面白い(そしてより速い)方法。ここで提供されます。
$ids = array();
for($i = 0 ; $i < 1000 ; $i++) {
$ids[] = rand(1, 10000);
}
$req = mysql_query("SELECT url FROM images WHERE user_id = '{$row['userID']}' AND id IN (" . implode(',', $ids) . ") LIMIT 10");