Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 4
Vlad-Abakan Сообщение 03/02/2011 03:39 Копия темы
PHP/MySQL – Выбор записей из MySQL в диапазоне дат В который раз получаю вопрос от начинающих товарищей,  типа: у меня в базе есть таблица comments, в которой лежат комментарии. У нее есть поле comment_date, как мне выбрать комментарии в диапазоне минус 2 дня от, например, 01.02.2011?

Проще говоря, нужны записи в диапазоне минус 2 дня от указанной даты (допустим она передается POST-ом) включительно.

Средствами пхп эту задачу решить можно, но лучше воспользоваться средствами MySQL, у которой, в принципе, неплохой функционал для работы с датами/временем. Это не только весело, но и удобно.

Итак, пример: 


<?php

...
$date = mysql_real_escape_string($_POST['date']);
$comments = $db ->query("
    SELECT *
    FROM comments
    WHERE
    TO_DAYS(STR_TO_DATE('$date', '%d.%m.%Y')) – TO_DAYS(comment_date) <= 2
    AND
    comment_date <= STR_TO_DATE('$date', '%d.%m.%Y')
    ");
...



Так наглядно, что даже комментарии не нужны.
Хорошо и понятно про функции даты/времени MySQL расписано вот тут:
phpclub.ru/mysql/doc/date...
RiDDi Сообщение 03/02/2011 06:13 Копия темы
Да, это весело, удобно и крайне нерационально. Классическая ошибка начинающих программистов.

Функции обработки в условиях оправданы в использовании только тогда, когда данные изначально неизвестны и подставляются непосредственно из выборки. В противном случаи минимум это нелогично и ведет к нечитабельности  кода, а максимум – пустая трата ресурсов. В Вашем примере это как раз максимум – MySQL будет выполнять функцию при сравнивании каждой строки таблицы хотя условие, по сути, относительно запроса есть константа.

У Вас точно опыт 11 лет? ))
Vlad-Abakan Сообщение 03/02/2011 18:06 Копия темы
Читабельность легко сравнить, если вы опишите получение начальной даты средствами пхп.

Говоря о рациональности вообще, важно найти балланс между простотой реализации и занимаемыми ресурсами. Особенно это играет роль на начальных этапах разработки, когда важно сначала в сжатые сроки запустить проект, а затем, в случае его успеха, и заниматься оптимизацией. Я не вижу ничего страшного в использовании скуль функций/UDF, когда это может заменить много пхп кода, иногда на страницу, а следовательно сэкономить кучу времени и денег заказчика.
Если разобраться, то в примере можно поругаться и на звездочку, и вообще.
Хотя вы конечно правы, наверное на это стоило обратить внимание в тексте.

Также касаемо данного примера – речь идет не о нагруженной системе, которая проживет много лет и будет иметь большую и тяжелую базу, поэтому тут  такая конструкция вполне оправдана. Тут главное что весело, и что удобно.
Но, повторюсь, оговорить это стоило, спасибо что обратили внимание.

Инфа 100%, я уже старый же ). Хотя душой молодой.
RiDDi Сообщение 03/02/2011 18:44 Копия темы
ну, в принципе..

да ладно, какой старый в 33 года ) самый рассвет сил :)
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"