10.07.2013, 11:05
|
Профессор
|
|
Регистрация: 26.07.2012
Сообщений: 281
|
|
Нубские sql вопросы
Доброго дня, котаны.
Нужно сформировать средней сложности запрос и вернуть аяксом ответ.
Так вот, для начала: нормальная ли практика создавать отдельный php файлик и только в нем по запросу возвращать. Или обернуть родную страничку в какой-то иф, и если она вызывается без гетов, постов, то выдавать интерфейс, а если с чем-то, то результат запроса? Просто не знаю как у вас там в пхп положено.
Второй вопрос, как сформировать строку запроса, если там есть несколько AND , количество которых зависит от запроса и может быть разное?
Ну и третье, может кто подскажет краткий справочник по всему этому с макс количеством практических примеров? А то везде в основном примеры на чистом sql, а практических мало, ну и нет возможности перерывать сейчас мотни страниц.
|
|
10.07.2013, 11:37
|
Профессор
|
|
Регистрация: 16.05.2013
Сообщений: 229
|
|
Цитата:
|
нормальная ли практика
|
сейчас в моде MVC и прочее разделение обязанностей
все должно быть разделено -- роутинг, контроллеры, модели, шаблоны
Цитата:
|
как сформировать строку запроса, если там есть несколько AND , количество которых зависит от запроса и может быть разное
|
либо генерировать запрос самому конкатенацией строк, либо использовать "query builder" какой найдешь (я лично видел в orm doctrine2, в cms drupal и в фреймворке yii)
если будешь генерировать сам, не забудь использовать "prepare" (из mysqli или pdo) для вставки аргументов, полученных от пользователей (иначе схлопочешь sql-инъекцию)
Цитата:
|
краткий справочник по всему этому с макс количеством практических примеров
|
справочник по чему?
* pdo? там всего несколько методов и классов
* sql? "Learning SQL" by Beaulieu
|
|
10.07.2013, 11:46
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от PashPP
|
нет возможности перерывать сейчас мотни страниц
|
Поэтому ты хочешь, чтобы кто-то сделал это за тебя?
Сообщение от PashPP
|
Или обернуть родную страничку в какой-то иф, и если она вызывается без гетов, постов, то выдавать интерфейс, а если с чем-то, то результат запроса? Просто не знаю как у вас там в пхп положено.
|
Зачем мешать интерфейс и геты в кучу? Можно создать для запросов отдельный файл и назвать его, как ни странно, например: get.php
Сообщение от PashPP
|
не знаю как у вас там в пхп положено.
|
У кого, у вас? Как напишешь программу, так и будет.
Сообщение от PashPP
|
Второй вопрос, как сформировать строку запроса, если там есть несколько AND , количество которых зависит от запроса и может быть разное?
|
Сначала пишешь как умеешь, затем оптимизация. Все как обычно. Либо запрос неправильно составлен, раз там много этих AND. Либо формируй запрос на лету, только данные не забывай проверять(регами например).
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Последний раз редактировалось Gozar, 10.07.2013 в 11:52.
|
|
10.07.2013, 11:49
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от mta88
|
если будешь генерировать сам, не забудь использовать "prepare" (из mysqli или pdo) для вставки аргументов, полученных от пользователей (иначе схлопочешь sql-инъекцию)
|
И получишь неработающие запросы по причине, которую найдешь не сразу. Тот же LIKE покажет фигу и будет ругаться неприличными словами, а все потому что prepare со вставкой аргументов работать не будет. В остальном совет правильный, но для динамических запросов нереализуемый.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Последний раз редактировалось Gozar, 10.07.2013 в 11:51.
|
|
10.07.2013, 11:50
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от mta88
|
сейчас в моде MVC и прочее разделение обязанностей
все должно быть разделено -- роутинг, контроллеры, модели, шаблоны
|
Звучит как
- мне нужен мопед
- купите космолет, они сейчас в моде.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
10.07.2013, 12:07
|
Профессор
|
|
Регистрация: 16.05.2013
Сообщений: 229
|
|
Цитата:
|
Тот же LIKE покажет фигу
|
да, есть такое
Цитата:
|
Звучит как
- мне нужен мопед
- купите космолет, они сейчас в моде.
|
ну я не имел ввиду сразу symfony2
если топикстатер захочет, напишет с нуля в одном файле
|
|
10.07.2013, 12:13
|
Профессор
|
|
Регистрация: 26.07.2012
Сообщений: 281
|
|
mta88,
Спасибо.
Сообщение от Gozar
|
Поэтому ты хочешь, чтобы кто-то сделал это за тебя?
|
Да у тебя уже паранойя. Еще "Иди в Работу" вспомни.
Сообщение от Gozar
|
Зачем мешать интерфейс и геты в кучу? Можно создать для запросов отдельный файл и назвать его, как ни странно, например: get.php
|
Оки. Спасибо.
Сообщение от Gozar
|
У кого, у вас? Как напишешь программу, так и будет.
|
Ты же должен соображать, что мой вопрос адресован людям знающим, работающими с сбжем вот потому и выделил какой-то класс "вас".
Сообщение от Gozar
|
Либо запрос неправильно составлен, раз там много этих AND.
|
Хм. Ну он пока что и не составлен. Посмотрим.
|
|
10.07.2013, 15:55
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от PashPP
|
Да у тебя уже паранойя
|
Нет это у тебя непонимание того, зачем нужен форум. http://phpclub.ru/faq/WhyForum
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
13.07.2013, 15:42
|
|
Профессор
|
|
Регистрация: 05.06.2009
Сообщений: 1,703
|
|
Цитата:
|
Да у тебя уже паранойя.
|
Есть немного, но его это не смущает
__________________
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
Самые главные в жизни вещи - не вещи! (было написано на одном гараже =)
|
|
|
|