0

私が話している Web ページはhttp://transfigurationstattoostudio.com/showcase.phpです。テーブルは ID (一意)、TITLE、DESCRIPTION、IMAGE_1、IMAGE_1_DESCRIPTION (および画像用の 5 つの他のスロット) で構成されています。

Web ページには現在、各 IMAGE_1 のサムネイルが表示され、TITLE フィールドを介して完全なギャラリーにリンクされています。

私がやろうとしているのは、重複する TITLE エントリを削除することです。そのため、ユーザーは同じタイトルのギャラリーを複数追加できますが、ページには 1 つしか表示されません (同じタイトルのすべての画像が完全なギャラリーに表示されます)。

DISTINCT を使用してみましたが、各レコードは一意であり、ID が異なります。私が望むことは可能ですか?

4

2 に答える 2

3

SELECT DISTINCT(title), image_1 FROM table;

Though it should be stated that you shouldn't consider items with the same title a gallery. Why not create an addition table that references the image id's with a gallery id?

--Image
id | title | thumb1 | thumb2

--Gallery
id | title | description

--GalleryImage
gallery_id | image_id

This could even go another step forward and have another relationship for thumbs, instead of using thumb1 / thumb2 - but you get the point hopefully.

于 2012-12-06T10:52:17.740 に答える
0

2 つのクエリを試します。1 つはすべての個別のタイトルをループし、2 番目はそのタイトルの最初の画像レコードを取得します。あなたはあなたのテーブル名を言わなかったので、私はそれが画像であると仮定します:

$mysqli = new mysqli(...);
$titleSql = "SELECT DISTINCT TITLE FROM IMAGES ORDER BY TITLE";
$result = $mysqli->query($titleSql);
while ($row = $mysqli->fetch_row($result)) {
    // Now just get the first image record associated with that title
    $imageSql = "SELECT ID, IMAGE_1 FROM IMAGES WHERE TITLE = " + $row[0] + " LIMIT 1";
    ...
}
于 2012-12-06T10:54:21.383 に答える