Roman_che, запрос ничего не выводит, даже title страницы не выводится из базы. И заметки нет, которая была. Добавлено спустя 5 минут 12 секунд: Игорь, вывелось следующее: Что это показывает?
Игорь, добавил категорию в запрос: Насчет обратных кавычек не понял. Покажи, какой это символ и куда его в запрос
на Ё Код (PHP): $query = "SELECT * FROM `posts` WHERE `cat_id`='$cat' ORDER BY `date` DESC, `id` DESC LIMIT 5"; echo "<br>ВОТ ЗАПРОС [[$query]]<br>"; $result2 = mysql_query($query,$db); var_dump($result2);
Так просто выводится надпись эта на экран. А для чего был этот запрос, который ты мне последним посоветовал?
чувак, я заменил твой код этим. остальной твой код надо ж тоже использовать =))))))))))) Добавлено спустя 34 секунды: давай, просыпайся. надо читать код и думать, что он делает и как его применять до того, как запускать
Игорь, я вставил под твоим кодом прежний - получился вывод названий заметок за первую категорию. Эти же названия выводятся и под заметками из второй категории, т.е. везде теперь по умолчанию стоит первая категория. А нужно-то, чтобы названия под заметкой выводились из одной с этой заметкой категории (если первая, то из первой, если вторая, то из второй). Дело не в том, чтобы думать, что делает твой код, дело в том, что я не знаю этих функций) И мне непонятно для чего ты мне его подсказал))
ну ты в запросе запрашивай нужную. =) если у тебя в переменной нужная то и выведет нужные. видимо не то запрашиваешь.
Да, ладно, умный ты наш, ты и не собирался помогать))) разыгрываешь из себя здесь Будду, даже противно. Когда я что-то знаю и могу этим помочь, то просто говорю как есть, а не ломаюсь, как школьница. Не отвечай здесь больше и не отнимай моего времени.
newstarter, тебе всё давно сообщили. В твоём скрипте проблема, что иногда создаётся не верный SQL запрос. Чтобы узнать, какой именно запрос создаётся, тебе и посоветовали выводить в браузер. Ты привёл свой вариант в первом посте Код (Text): $result2 = mysql_query("SELECT * FROM posts WHERE cat_id='$cat' ORDER BY date DESC, id DESC LIMIT 5",$db); Он в целом верный. Тебе igordata посоветовал посмотреть получающийся запрос так Код (Text): $query = "SELECT * FROM `posts` WHERE `cat_id`='$cat' ORDER BY `date` DESC, `id` DESC LIMIT 5"; echo "<br>ВОТ ЗАПРОС [[$query]]<br>"; чтобы ты проверил, что в условии WHERE `cat_id`=... точно оказывается значение переменной $cat. У тебя там оказалась 1, значит, всё ок. Можешь закомментировать вывод в браузер (вторую строку из примера) и заменить свой запрос на Код (Text): $result2 = mysql_query("SELECT * FROM `posts` WHERE `cat_id`='$cat' ORDER BY `date` DESC, `id` DESC LIMIT 5",$db); Проблема в том, что переменная $cat иногда бывает с пустой строкой, потому в SQL запросе получается такое условие WHERE `cat_id`='' , из-за которого выводятся обе категории. Возможно, в get параметрах приходит пустая строка. В таком случае твой код Код (PHP): if (isset($_GET['cat_id'])) {$cat = $_GET['cat_id']; } if (!isset ($cat)) {$cat = 1;} заменить на Код (PHP): $cat = 1; if (isset($_GET['cat_id'])) { $cat = (int)$_GET['cat_id']; if ($cat <= 0) $cat = 1; } или подобный, чтобы в переменной $cat всегда было значение.
YSandro, большое вам СПАСИБО. Если бы мне сразу объяснили, для чего советуют тот или иной запрос, а не включали тайну, было бы легче понять. Вот как вы здесь объяснили. Все логично и понятно. Только вот с этой частью не получается. У меня ведь категории две, изначально идея была, чтобы под заметкой из определенной категории выводились названия других заметок ТОЙ ЖЕ категории. Т.е. если из второй, то относящиеся ко 2-й. Теперь же везде выводятся только к первой. Код получается неуниверсальный, выводит только одну категорию. С этой частью что-то можно еще сделать? p.s. Еще раз Спасибо!
Значит, не приходит get параметр cat_id. Если бы он приходил, то оказывался бы в массиве $_GET по ключу'cat_id' (то есть в $_GET['cat_id']) и переменной $cat присваивалось бы какое-нибудь значение в строке Код (Text): $cat = (int)$_GET['cat_id'];
Верно, по умолчанию первая в строке Код (Text): $cat = 1; Далее мы узнаём, есть ли в массиве $_GET что-нибудь под ключом 'cat_id' Код (Text): if (isset($_GET['cat_id'])) { ... Но, раз там ничего нет, то остаётся единица.
Сюрреализм какой-то! В таблице posts в cat_id есть как 1, так и 2, текст запрашиваемых по id заметок выводится полностью из обеих категорий без проблем. Как же в массив может попадать только значение одной категории? 0_0
Ну сделай вывод массива в браузер, посмотри, что приходит Код (Text): var_dump($_GET); , есть ли cat_id, какое имеет значение.
А какие могут быть наиболее вероятные причины? Ведь все в коде вроде правильно указано и таблица есть.
В массив $_GET попадают параметры, переданные с адресом из браузера, например, адрес_сайта.ру/page.php?id=6, или созданные и переданные от сервера (через правила в файле .htaccess). Второй вариант нас пока не интересует, это просто информация на всякий случай. Остаётся очевидная причина, почему в массиве $_GET нет данных по ключу 'cat_id': потому, что браузер не передаёт параметр cat_id. Если бы передавал, это выглядело бы как-то так: адрес_сайта.ру/page.php?id=6&cat_id=3