2

車、バイク、バスの 3 つのカテゴリの画像を格納するテーブルがあります。これらの画像は 2 ページで表示されます。最初のページには、ランダムに定義された各カテゴリの画像が表示されます。2 ページ目に、残りの写真が表示されます。phpを使用してこれを行うにはどうすればよいですか?

4

2 に答える 2

1

MySQL でこれを行うことをお勧めします。順序を次のように設定できます。

ORDER BY MD5(ImageNo+UserRandomNumber)

SQL フィドル

ユーザーごとに 1 つの乱数を生成し、これをセッションに保存してから順序付けに適用できます。指定された数が同じである限り、順序も同じままです。

于 2013-01-31T13:48:28.233 に答える
0

実際、セッションを使用して、最初のページに表示された画像を保存し、2 番目のページに残すことができます。正確なテーブル構造を知らなくても、次のようなものが機能するはずです。

<?php

// page 1
session_start();

function get_random_image_id($category)
{
    // SELECT id FROM images WHERE category = $category ORDER BY RAND() LIMIT 1
}

function show_image($id)
{
    // SELECT * FROM images WHERE id = $id
    // echo <img ...>
}

$_SESSION['image_ids'] = array(
    get_random_image_id("cars"),
    get_random_image_id("bikes"),
    get_random_image_id("buses"),
);

foreach($_SESSION['image_ids'] as $image_id)
{
    show_image($id);
}

?>

<?php

// page 2
session_start();

function show_images($exclude_ids)
{
    $ids = implode(",", $exclude_ids);
    // SELECT * FROM images WHERE id NOT IN ($ids)
}

$exclude = array();
if(isset($_SESSION['image_ids'])) // has the user visited page 1?
{
    $exclude = $_SESSION['image_ids'];
}

show_images($exclude);

?>
于 2013-01-31T13:39:38.033 に答える