私は各カテゴリーから3つのランダムな画像を選択するスクリプトを実行する評価サイトで毎日cronjobを実行しています。訪問者は「画像1対画像2」のように画像を評価できます"これは非常にうまくいく。問題があるデータベース内の同じ番号の2つの行が選択されていないことを確認するにはどうすればよいですか?
は
がのがと仮定しましょう画像の同じタイプの2があると言うことができます
- ID 1は、フォードマスタングGTの正面にある
- ID 2は、フォードマスタングGTですid 1とわずかに異なる正面図
これは、id 1とid 2の両方が選択されている場合、2つのかなり同じ画像がそれぞれ他の?だから、私はこのケース番号1及び番号2簡略化におけるように同じ同じ番号を表す画像を与える「分離カラム」を作成し、両方有するセパレータ番号1 :)
データベース構造
表車
cars_id | cars_category | cars_source | separator
--------+---------------+---------------+-----------
1 | 1 | 123.jpg | 1
2 | 1 | 242.jpg | 1
3 | 2 | 532.jpg | 2
4 | 2 | 531.jpg | 3
5 | 2 | 45fd.jpg | 3
6 | 3 | da3.jpg | 4
各カテゴリ
$cat1 = 1;
$cat2 = 2;
$cat3 = 3;
$stmt = $dbCon->prepare(" INSERT INTO daily_versus (daily_versus_source, daily_versus_category) "
. " (SELECT cars_source, cars_category "
. " FROM cars "
. " WHERE cars_category IN (?) ORDER BY RAND() LIMIT 3) "
. " UNION "
. " (SELECT cars_source, cars_category "
. " FROM cars "
. " WHERE cars_category IN (?) ORDER BY RAND() LIMIT 3) "
. " UNION "
. " (SELECT cars_source, cars_category "
. " FROM cars "
. " WHERE cars_category IN (?) ORDER BY RAND() LIMIT 3) ");
$stmt->bind_param('iii', $cat1, $cat2, $cat3);
if ($stmt->execute()) {
echo "Success VERSUS/INSERT";
} else {
echo "Fail VERSUS/INSERT";
}
から3枚のランダム画像魅力上記のような作品を選ぶが、何が賢いapproacだろう現在のPHPスクリプトに2つの同じ車を選ぶことはできないので、セパレータ番号 "x"を持つ自動車が選択された場合、その同じセパレータ番号を持つ別の車を選択することはできません。
これは、いずれかを持っていないはずです(使用する前に離れてコメント/ストリップを開始します)私が尋ねたものとの関係 – Javaish