| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Проблема с выводом контента в MVC |
| Автор: parnasmi 13.4.2013, 17:28 | ||||||||||||||||
Всем привет. Я - новичок, к тому же чайник
Тут и начинается проблема. Менюшки выводятся , а вот с контентом беда http://s1.ipicture.ru/Gallery/Viewfull/23971167.html Надпись вывода "There is problem with ID " прописано в моделе mcontent.php в случае отсуствие id Думаю вот тут причина ошибки. Вот содержимое mcontent.php:
Если уберем
Выводиться это: http://s1.ipicture.ru/Gallery/Viewfull/23971667.html Если набирать сам vcontent.php на браузере(http://kostix.loc/views/vcontent.php): Ошибка: Database query failed:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and visible = '1' LIMIT 1' at line 2 С id(http://kostix.loc/views/vcontent.php?id=1(или 2)) контент уже нормально выводиться. Содержимое vcontent.php
Что странно в скринкасте у самого K0stix а все нормально работает. Тоесть при нажатие на менюшки по id выводяться соотвествующие контенты. Хотя, преверил код на последном уроке где мы писали эти меню и контент. Все идентичны. Кажеться после записи он что-то переделал, но забыл это объеснить на следуюшем уроке. Дальше привожу все php файлы: ccontent.php
mmenu.php
cmenu.php
vmenu.php
Пожалуйста, покажите "таракана", где мог ошибиться. И, как делать так, чтобы контенты при нажатие на ссылки меню выводились по очереди.Заранее спасибо за помощь. |
| Автор: Sanchezzz 13.4.2013, 17:42 | ||
Ошибка в SQL запросе для mysql пхшный NULL не совсем NULL для мускула иначе говоря нужно было его передать как строку примерно так
|
| Автор: baLamooot 13.4.2013, 17:43 | ||
| Не ясно, где тут MVC, какая-то странная мешанина. Вроде есть что-то, что автор курса считает моделью, контроллером и видом, но чтобы контроллер наследовал модель а get-параметры принимались видом - попахивает клиникой По вопросу. В общем случае если $_GET['id'] не определен или равен нулю (т.е. vcontent.php?id=0 или просто vcontent.php без id), то будет выводиться эта ошибка, поскольку следующие условия срабатывают всегда
В остальном хорошо бы проверять вообще наличие ключа id у $_GET массива, в случае присутствия приводить к ожидаемому типу (в данном случае к int), а в случае отсутствия заменять своим значением. Если не проверять наличие ключа, при настройке ошибок E_ALL будет еще больше ошибок (верней нотисов). Вообще странно, что расчитанный на девелоперсий инвайронмент Денвер имеет такие щадящие настройки ошибок. Судя по коду, курс ничему путному не учит. Первый же sql-запрос шлет приветы инъекциям |
| Автор: parnasmi 14.4.2013, 05:28 |
| Всем спасибо. Сейчас попробую переделать. Отпишусь. |
| Автор: parnasmi 14.4.2013, 14:16 |
| To Sanchezzz, baLamooot, спасибо за помощь и наводки , но, к сожалению таки не смог решит проблему. Нашёл исходные файлы автора. Покопаюсь там, можно кое - что найду. |
| Автор: baLamooot 15.4.2013, 01:02 | ||||
parnasmi, в классе Mcontent поменяйте декларацию метода
Обе указанные ошибки должны исчезнуть. |
| Автор: parnasmi 15.4.2013, 09:30 | ||||||
Спасибо. Вероятно, проблема не в 'null' . Результат тот же и в NULL и в 'null'. Различие кодов у автора и моего не много. все равно все переделал как у автора. Но все равно у меня контента не выводиться. Выводятся только если прописать полный путь до id. При нажатии на ссылки меню ничего не происходить. Домен на локалке - kostix.loc. Вот что выходит через index.php http://s2.ipicture.ru/Gallery/Viewfull/24030909.html Вывод надпись а "Привет. Это, я, таракан." происходить автоматически если при выводе vcontent.php не сушествует id. Вот что происходит при нажатии на ссылки меню http://s1.ipicture.ru/Gallery/Viewfull/24031114.html Почему при нажатии на ссылки в адресном строке появляються "http://kostix.loc/?id%20=%201" а не "http://kostix.loc/?id=1"? Вот и мучаюсь. Как переделать так чтобы через меню выводились соответствующие контенты из базы? Исходники прикрепил на всякий случай. |
| Автор: parnasmi 19.4.2013, 21:29 |
| Проблема решена. Тему можно закрыт. Ошибка был в синтаксисе PHP. И ешё кое-где. Всем спасибо. |