2012-01-07 8 views
0

ユーザー入力のWebサイトごとに、mysqlからランダムな情報/テキストを取得します。 質問:ユーザーがページをリフレッシュするたびに、前回と同じ情報が表示されないようにするにはどうすればよいですか?mysql every randomからのランダムな結果(f5)

まず私の心にcamedアイデア:

  1. ユーザーは、彼/彼女が$id= '123';
  2. 我々は
  3. ユーザーが再びページを更新セッションに保存し、そのIDを持っている情報を取得し、ウェブサイトのを入力して、新しい実行なステートメントの場合:
if ($id == $random_id_from_mysql) { 
    //select new id from mysql, because it's the same, viewed before 
} else { 
    //show new information and store $id in session for feature usage 
} 

このために利用可能なすべての新しい方法?

答えて

3
session_start(); 

// If a value already exists in $_SESSION, it will be used. 
// Otherwise, NULL 
$prev_rand = isset($_SESSION['prev_rand']) ? $_SESSION['prev_rand'] : NULL; 

// Query for a random record that isn't equal to the previous one 
// (or isn't NULL if no previous one exists) 
// using RAND() and LIMIT 1 
$result = mysql_query("SELECT id, col1 FROM tbl WHERE id <> '$prev_rand' ORDER BY RAND() LIMIT 1"); 
$row = mysql_fetch_array($result); 

// Store the new rand value into session 
$_SESSION['prev_rand'] = $row['id']; 
+0

セッションの代わりに、getパラメータとリダイレクトを使用できます。または単にクッキー。 – hakre

+0

はい、 '$ _GET'または' $ _COOKIE'が動作しますが、 '$ _SESSION'はそれが重要なことをより厳しく改ざんしています。 –

+0

本当に、私のコメントは、いくつかの代替手段としてもっと意味がありました。原則はあなたの答えとまったく同じですが、これは他の形式の* session *に過ぎません。 – hakre

関連する問題