0

私は何千もの画像がある画像ギャラリーのウェブサイトのためにphpmysqlでウェブサイトを作っています。私のテーブル構造は、このリンクの画像にあり ます

今私が欲しいのは、ユーザーが「ピンク」という単語を検索すると、画像テーブルの両方の画像が表示されるはずです。ただし、ユーザーが「ピンクの花」を検索すると、最初の画像のみが表示されます。これは単なる例です。ユーザーは「美しいピンクの花」を検索することもできます...私は同じもののmysqlクエリが必要です。私の質問が十分に明確であることを願っています。あらゆる種類のヘルプや提案を事前に感謝します。

4

1 に答える 1

0

explode( ' ', $serachTags )実行した後、または各タグを取得するために、このようなことを行うことができます。

SELECT
   images.img_name,
   images.img_url
FROM
   images,
   connections,
   tags AS tagA,
   tags AS tagB,
   tags AS tagC,
   ...
WHERE
   images.img_id = connections.img_id AND
   tagA.tag_id = connections.tag_id AND
   tagA.tag_name = 'name1' AND
   tagB.tag_id = connections.tag_id AND
   tagB.tag_name = 'name2' AND
   tagC.tag_id = connections.tag_id AND
   tagC.tag_name = 'name3' AND
   ...

I.e。花とピンクの場合は、次のことができます。

SELECT
   images.img_name,
   images.img_url
FROM
   images,
   connections,
   tags AS tagA,
   tags AS tagB
WHERE
   images.img_id = connections.img_id AND
   tagA.tag_id = connections.tag_id AND
   tagA.tag_name = 'flower' AND
   tagB.tag_id = connections.tag_id AND
   tagB.tag_name = 'pink'
于 2012-12-16T14:27:04.353 に答える