2011-10-17 39 views
-1

私はどんな出会い系サイトのようにも、ユーザーとマッチするサイトで働いています。を除いて、私は一度に1つのランダムに表示されるユーザーを一致させたいと思います。彼らが好きな結果を見つけ出すまで、次のボタンをクリックするだけです。私はリスト形式で結果を照会する方法を知っていますが、一度に1つずつ(マッチスコアに基づいて)ランダムに選んだマッチのプロファイルをランダムに表示するためにどのようなコードを使用する必要がありますか?私はPHPを使用しています。ありがとう!もしあなたが私に何を見上げたらいいか教えてくれればそれは素晴らしいだろう!ランダムな結果表示PHP

+0

あなたは私達にあなたの中にいくつかの洞察力を与えることができますデータベース? – TJHeuvel

+0

私はmySQLを使用しています。テーブル構造が必要ですか? – user999340

+0

私はデータベースに「マッチスコア」を格納していると仮定していますが、あなたが実際に望むものをより具体的にすることはできますか? 「無作為に選んだマッハの得点に基づいて」、あなたは*それがどういう意味ですか? – TJHeuvel

答えて

0

「複雑な」mysqlリクエストがあるとします。ORDER BY RAND()を追加して、たとえばajaxを使ってそのリストを処理できます。

0
SELECT ... 
FROM yourtable 
WHERE .... search conditions ... 
ORDER BY rand() 
LIMIT 1 

これを行うための最も簡単な、しかし、最も可能性が高い以上の効率的な方法です。次回にクリックするたびにクエリを再実行すると、一致するものがランダムに入力されます。重複が現れないようにすることはできません。一致がほとんどない場合は非常にそうです。

1

あなたはは、NOT使用MySQLのORDER BY RAND()句は、それは遅いですので、それはこのように行動すると良いでしょう必要があります。

  1. プロファイル
  2. 選択プロファイルからMAX(ID)を選択*プロファイルどこprofile.idから。 = mt_rand(0、MAX_ID)

は、パフォーマンスのためにはるかに良くなる

+1

しかし、あなたはIDが完全にインクリメントされていると仮定しており、ギャップはありません。これは、たとえばユーザーを削除する場合には当てはまりません。 – TJHeuvel

+0

なぜそうではないのですか?あなたは存在するIDを見つけるためにループを使います...たとえあなたが "id hole"をたくさん持っていても、すべてのidをある[temporary]テーブルに入れてそこからランダムに取得することができます – user973254

+0

2番目のクエリは、 「穴」。 – TJHeuvel

関連する問題