PHP / Mysql вытащить 5 связанных историй - PullRequest
0 голосов
/ 14 октября 2010

Мы добавляем теги к нашим новостным сообщениям (мы используем нашу собственную CMS), и я хотел бы добавить 5 связанных историй в зависимости от того, какие теги используются для отдельной истории.У нас есть теги в базе данных, разделенные пробелами, поэтому я использую этот код, чтобы получить теги в массив

$tags = explode(" ", $tags);

Теперь, когда у нас есть теги в массиве, я хочу использовать их для извлечения связанных историйиз базы данных.

foreach($tags as $t) {
    $pullRelated = mysql_query("SELECT * FROM `posts` WHERE `tags` LIKE '%$t%' AND `newsID` != '$newsID' LIMIT 5");

Проблема в том, что если будет 3 тега, будет показано 15 связанных историй (по 5 для каждого тега).Что бы я хотел, если бы было 2, 3, 4 или 5 тегов, показывать смесь историй из всех тегов, но при этом показывать только 5 историй.

Советы?

1 Ответ

0 голосов
/ 14 октября 2010

Таким образом, вы держите теги (ключевые слова, категории) в виде строки с пробелами в таблице сообщений.

Что ж, об этом мало что можно сказать, за исключением того, что вам нужно нормализовать дизайн, который облегчит все ваши проблемы и сделает ваше приложение значительно более эффективным, если судить по тому, что вы уже показали.

Что-то в этом ряду должно быть достаточно:

Перезапись mysql select для сокращения времени и записи tmp на диск

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...