Предположения что проблемы с вложенным циклом, хотя может и в запросе тоже беда. Вообщем - надо вывести теги прикрепленные к новостям. В БД 2 таблицы- теги(tags) и новости(notes). Теги привязываються к новосте с помощью ИД новости, значение которой находится в талице теги. Запрос к бд на вывод новостей [sql] $query_notes = "SELECT categories.name, notes.id, notes.time, notes.added, notes.title, notes.content, notes.importance FROM notes, categories WHERE notes.catid = categories.id ORDER BY id DESC"; [/sql] ну вот сам цикл PHP: <?php do { ?> <?php $noteid = $row_notes['id']; mysql_select_db($database_blog, $blog); $query_tags = sprintf("SELECT tag, noteid FROM tags WHERE noteid = %s", $noteid); $tags = mysql_query($query_tags, $blog) or die(mysql_error()); $row_tags = mysql_fetch_assoc($tags); $totalRows_tags = mysql_num_rows($tags); echo $row_notes['title']; echo $row_tags['tag']; ?> <?php } while ($row_notes = mysql_fetch_assoc($notes)); ?> Кстати, то что я вложил запрос в цикл наверное плохо, но что то альтернативного варианта не придумал пока что... Собсно сейчас там один цыкл, выводится-повторяется каждая новость столько раз сколько у нее тегов. Как бы вот вывести в одном цикле отдельно новости или теги я могу, а вот что бы цикл в цикле , с этим проблема. Я так понимаю нада сделать так что бы первый цикл выводил новости, а цикл который в нем выводил к каждой новосте теги...эээ...пральна?
kilroy Может стоит выбрать все теги одним запросом, сформировать из них какой-нибудь удобный для дальнейшего пользования массив, и тогда уже пробежаться по новостям? Если тегов много, можно выбрать только те, которые имеют отношение только к заданным новостям. В запросе это выглядит примерно как SELECT * FROM tags WHERE noteid IN (<список ID новостей через запятую>)
Dagdamor Не въехал. У меня вот тут выбираються теги которые имеют отношение только к определенной новосте [sql]"SELECT tag, noteid FROM tags WHERE noteid = %s", $noteid[/sql] Как бы, я думаю правельным будет сделать вложенный цикл который бы выводил теги.
kilroy Просто если новостей на странице много, твой запрос придется выполнять много раз, для каждой новости отдельно. Я же предлагаю сделать один запрос, а потом уже группировать полученные данные.
Как вариант, сделать селект постов, потом пройти циклом и собрать все id постов. Затем сделать селект из меток in (id постов). Два запроса. Один простой цикл + один цикл с echo полей. P.S. Для упрощения первого цикла можно дублировать первый селект постов, но только с одним полем. Хотя, это лишнее. Цикл будет в разы быстрее, чем лишний запрос, имхо.
"SELECT DISTINCT categories.name, notes.id, notes.time, notes.added, notes.title, notes.content, notes.importance, tags.tag FROM notes, categories, tags WHERE notes.catid = categories.id AND tags.noteid = notes.id ORDER BY notes.id DESC"; когда в цикле фетчишь - проверяешь новость та же что и в предыдущей записи, если да только тег, если нет - новость и тег принтишь. Про дистинкт не уверен что нужен. Но сдается при этом запросе кучу дублей получишь.
Всем спасибо)) Ээээ, решил с помощью вложенного цикла... Только вот непонил почему сейчас заработало как нада, раньше вроде так же писал, но не работало как нада))