miketomlin

Рейтинг
235
Регистрация
04.12.2013

Если одинаковые поля, OR, а если разные, AND.

---------- Добавлено 18.02.2019 в 13:39 ----------

IN – это то же самое, что и (множественный) OR. В случае OR не забываем, что у него приоритет ниже, чем AND, поэтому берем в скобки. Тут все верно.

---------- Добавлено 18.02.2019 в 13:44 ----------

`wifi` = '1'
??? Может, все-таки `category`=1 или `category`='wifi' ?

---------- Добавлено 18.02.2019 в 13:47 ----------

Когда уже вы перестанете использовать расширение mysql? Используйте хотя бы mysqli.

---------- Добавлено 18.02.2019 в 13:51 ----------

Учитесь отделять код запросов от шаблонов, не делать полноценный вывод в ответ на POST и т.п.

Чтобы на этом форуме нормально отображался код, используйте просто CODE.

Бегет никогда не славился скоростью работы. По цене/качеству я однозначно за FOZZY.

mff:
В общем я так понял, нужно делать в индексном файле единый обработчик и, как правильно сказать, роутер, то есть подгружать нужный файл php исходя из данных, полученных в URI?

Единый обработчик – это фронт-контроллер. Роутер – обычно лишь его часть. Например, во фронте можно выполнять общие для всего сайта конфигурирование, авторизацию и т.п. Или выполнять какую-то общую финальную обработку после возврата из частного обработчика (работа роутера обычно заканчивается вызовом частного обработчика). Подгружать один файл – это слишком упрощенное представление. Обычно при формировании страниц/подготовке др. ответа участвует много файлов. Например, даже в простейшем движке по ссылке выше для сборки страницы помимо частного обработчика (который кстати может быть пропущен, т.к. фронт типичные действия по выборке данных из БД выполняет сам) обычно подключаются файлы частного и общего шаблонов – это как раз пример финальной обработки вне частного обработчика. Прочитать об этом более подробно, а также посмотреть на примеры частного и общего шаблонов можно тут.

За одно там же проверить, есть ли такие данные в базе и если нету, выдавать ответ отличный от 200, то есть направлять на страницу 404?

Именно так. Это одна из задач роутера – инициировать выдачу 404-ой (необязательно выдавать самому) при «непопадании» адреса запроса под заранее заложенные правила. Например, движок по ссылке выше проверяет «попадание» под единственную заложенную маску для соответствия адреса общему предопределенному формату и отсеивания недопустимых символов в нем. А ведь можно выполнять такую проверку в цикле, обходя «роуты» в порядке приоритета и проверяя попадание под их маски.

mff:
Этот вариант ни как не подходит. Много лишнего.

Это самый вменяемый вариант из простых: есть имя коллекции/признака, есть имя элемента/значение признака.

Не могли бы посоветовать какую нибудь статью по этой тематике, написанную доступным языком?

Посмотрите мою статью Как сделать единую точку входа с ЧПУ? – как раз для начинающих.

---------- Добавлено 16.02.2019 в 19:15 ----------

Этот вариант ни как не подходит. Много лишнего.
Может вы просто не до конца поняли суть. Вас никто не заставляет добавлять к показанным адресам еще и слаг статьи. Это уже будет др. ветвь/ветви. Но в принципе можете глянуть на G-Drive. В нем можно прятать имя признака/обработчика за первым компонентом пути. Ваши два уровня поддерживаются непосредственно ядром. Правда, по-моему не оч. красиво дублирование компонентов в идентификаторах animals и animals/national_zapovednik.html. И, уже начиная со второго уровня, нужно дописывать разруливание в пределах осн. обработчика.

---------- Добавлено 16.02.2019 в 19:23 ----------

У меня 3 категории на сайте, это "Страны", "Жанры", "Страны и Жанры".
По-моему это два независимых признака. Гляньте демку в конце статьи Как сделать фильтрацию элементов по двум независимым признакам? Хотя это все условность. Можно наплодить и отдельные сущности "Страны и Жанры". Тогда у статей будет только одно связующее поле с категориями.

То же имя базы, имя владельца и пароль. Предполагаю, что имя хоста – localhost. Импортируете дамп.

Если нужно именно удаленную подключить, то нужно в панели хостинга/на сервере разрешить удаленные подключения.

---------- Добавлено 16.02.2019 в 14:39 ----------

...и прописать соотв. адрес в конфиге сайта на локалке (вместо localhost).

Зависит от структуры сайта, адресации его страниц. Можно даже без base, только нужно обеспечить, чтобы страница не открывалась с непустым PATH_INFO, например milinda_panha.htm/ или milinda_panha.htm/xpath, иначе относительная адресация на странице будет нарушена.

---------- Добавлено 15.02.2019 в 10:51 ----------

P.S. Для общего для всего сайта оформительского обвеса лучше все равно использовать абс. адреса, иначе в зависимости от уровня вложенности адреса страницы придется лепить разные относительные адреса на обвес.

---------- Добавлено 15.02.2019 в 10:56 ----------

P.P.S. Это же касается и нек. др. адресов в ссылках на странице, например в ссылках меню. Относительные используете только при программном формировании ссылок осн. контента, например какого-то списка со ссылками на др. страницы, а для всего прочего используете абсолютные.

big boy:
В итоге сайт вырос в выдаче примерно в два раза по позициям, трафика тоже прибавилось.

Ну-ну. Потом не говорите, что вас не предупреждали.

Однако, проблема с 404 страницами актуальна и по сей день.

Яша не мог придумать того, чего нет ;)

Зефтя:
Я поторопился делегировать на Яндекс.

Да, у Почты для домена можно было подтверждать права путем делегирования, у Коннекта – нет. Может, из-за сырости последнего.

---------- Добавлено 11.02.2019 в 11:54 ----------

Зефтя:
Сейчас доменное имя зарегистрировано в nic.ru, домен делегирован в Яндекс.
См., если хостинг тоже в руцике, они вроде не предупреждают о смене IP. Хотя причина использовать сторонний DNS-хостинг тут понятна.

---------- Добавлено 11.02.2019 в 11:58 ----------

По возможности лучше, конечно, делегировать на серверы хостера, если у вас не выделенный IP или сервер.
net44:
Вообще сделать все супер правильно

Основа:


<IfModule mod_dir.c>
DirectorySlash Off
</IfModule>

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule (.*)/*$ http://%1/$1 [R=301,L]

RewriteRule (.*)/+$ /$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.* /index.php

Последнее правило означает, что для «все супер» нужно использовать единую точку входа, в которой и должна выполняться обработка 404-ой. Для прочих ошибок, которые могут возникнуть до попадания в единую точку входа, например для 403-ей, нужно расширять конфигурацию, например: http://gency.ru/comment/51

Кое-что можно и убрать из основы, например первое правило, и обрабатывать обращения к доменным алиасам в рамках отдельного «сайта». Это же относится и к использованию др. портов/схем, например 443/HTTPS.

---------- Добавлено 09.02.2019 в 16:02 ----------

P.S. Адреса с index.php можно смело делать недействительными, если для них нет хороших бэков. Корректировку редиректом делаете только для реальных «тайпинов». Помимо трэйлинг слэшей к ним прежде всего можно отнести большие буквы, множественные слэши (не только в конце пути, но и между компонентами пути или в его начале), например: http://g09.ru/////Articles/////My-First-Article/////

michail:
страница со слешем после .html/ - не работает

И не должна. Это др. адрес. Хотя понятие «не работает» размытое. Может, вы хотите сделать корректировку адресов с трэйлинг слэшами?

---------- Добавлено 09.02.2019 в 15:10 ----------

michail:
по сути да
Из наших движков общего назначения:


RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule (.*)/*$ http://%1/$1 [R=301,L]

RewriteRule (.*)/+$ /$1 [R=301,L]

Только добавьте условия «если не каталог» или отключите автоматическую корректировку по добавлению трэйлинг слэшей на каталогах.

Всего: 2534