- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Sly32, Почти правильно.
1. Если функция не вернёт массив, будет ошибка
2. приведите $limit к типу int, как я писал
Ragnarok,
1. Да,нужно сделать еще проверку полученных данных. Я проверяю, правда наличие строки после выполнения query - этого недостаточно, думаете? Проверять еще и каждый fetch?
2. как правильно - прямо вфункции вставить $limit = (int)$limit; ?
Ragnarok,
1. Да,нужно сделать еще проверку полученных данных. Я проверяю, правда наличие строки после выполнения query - этого недостаточно, думаете? Проверять еще и каждый fetch?
2. как правильно - прямо вфункции вставить $limit = (int)$limit; ?
1. Если $row_cnt == 0, То будет echo 'Ничего не найдено', а потом ошибка
2. В запросе
$arg = "SELECT * FROM `posts` WHERE `p_type` = 'news' ORDER BY `p_title` ASC LIMIT 0, " . (int)$limit;
Ragnarok, Понятно, спасибо за помощь
Sly32, методы классов не должны ничем гадить в основной поток вывода. Никаких echo во внутренних вызовах не должно быть.
Sly32, методы классов не должны ничем гадить в основной поток вывода. Никаких echo во внутренних вызовах не должно быть.
И вам спасибо, добрый человек))) Ценно, буду знать. А как тогда обработать случай с отсутствием данных?
И вам спасибо, добрый человек))) Ценно, буду знать. А как тогда обработать случай с отсутствием данных?
http://php.net/manual/ru/function.trigger-error.php
+ в качестве хорошего бонуса можно прочесть коммент #2 из линка выше и немного пропатчить простейший класс.
В самом методе, в котором данных не нашлось, возвращаете null, либо пустой набор данных ожидаемого типа (пустой массив если ожидается массив, пустую строку если строка, stdClass класс если ожидается объект и т.д.)
Вам нужно делать еще больший уклон в сторону MVC. При таком подходе вы еще далеки от него. У вас на странице вывода не должно быть никаких
<?php echo News::datlim('style-class', 3);?>потому что так получается, что представление запрашивает модель. Ошибки, из-за которых представленное не соответствует MVC:
1. global $mysqli; - а если $mysqli не будет определена в вашем следующем проекте?
2. echo в запросе данных - модель ничего не выводит.
Один из способов реализации здесь MVC (и то пассивного):
1. Модель
2. Контроллер
3. Представление
могут быть ошибки, набросал за 5 мин:)
Если читатель цитирует коды с global, то случай заведомо неоперабельный. Это я по своему опыту переписки на форумах программистов давным давно знаю.
---------- Добавлено 07.06.2015 в 23:26 ----------
По делу. Класс новостей (статей) на сайте это явный виджет. Ему не нужен контроллер и модель в упор не стучит. Потому что листинг надо мочь вывести в любую врезку, а равно статью вывести в любую секцию. Например выводим листинг релевантный запросу в каталоге. Или печатаем связанную статью под листингом товаров. Ну какой там экшон и в чем разница моделей? Пишется класс со всем скарбом, можно сначала интерфейс, или абстрактный. Потом наследуемся с него под разные нужды, или тупо перечисляем все методы под разные нужды и вперде.
По делу. Класс новостей (статей) на сайте это явный виджет. Ему не нужен контроллер и модель в упор не стучит. Потому что листинг надо мочь вывести в любую врезку, а равно статью вывести в любую секцию. Например выводим листинг релевантный запросу в каталоге. Или печатаем связанную статью под листингом товаров. Ну какой там экшон и в чем разница моделей? Пишется класс со всем скарбом, можно сначала интерфейс, или абстрактный. Потом наследуемся с него под разные нужды, или тупо перечисляем все методы под разные нужды и вперде.
Два чая этому человеку.