Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрос перестал давать данные, SQL 
V
    Опции темы
HipJ
  Дата 3.9.2011, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 21.1.2006

Репутация: нет
Всего: нет



Код

function getTournamentsActiveW() 
{
  global $DB;
    $current_week_start = date("Y-m-d", strtotime("last Monday"));
 $current_week_end = date("Y-m-d", strtotime("Sunday"));
  $DB->query('set names utf8');
  $DB->query('SET lc_time_names = "ru_RU"');
  $data = $DB->select(

    'SELECT t.name, cntr.cname, t.city, srf.sname, DATE_FORMAT(t.startDate,"%d %b.") AS startDate, DATE_FORMAT(t.endDate,"%d %b.") AS  endDate, t.www, t.typeId, t.livescore
    FROM wta t
    LEFT JOIN countrys cntr
    ON t.countryId = cntr.countryId
    LEFT JOIN surfaces srf
    ON t.surfaceId = srf.surfaceId
    WHERE  t.endDate BETWEEN ? AND  ?', $current_week_start, $current_week_end );
  return $data;
}



Запрос к SQL выдавал данные корректно, на протяжении года. На этой неделе перестал выдавать, даже при ручной постановке даты(?) WHERE  t.endDate BETWEEN ? AND  ? более ранней (когда работало), через PHP MyAdmin - не выводит ничего.
Если убрать WHERE  t.endDate BETWEEN ? AND  ?, то выводит всю таблицу, соответственно
PM MAIL   Вверх
Muerto
Дата 3.9.2011, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



А что выдает это?
Код

 $current_week_start = date("Y-m-d", strtotime("last Monday"));
 $current_week_end = date("Y-m-d", strtotime("Sunday"));


функции date и strtotime использовать не стоит, лучше переходить на DateTime (смотри в доку)


--------------------
user posted image
PM MAIL   Вверх
HipJ
Дата 3.9.2011, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 21.1.2006

Репутация: нет
Всего: нет



Цитата(Muerto @ 3.9.2011,  18:58)
А что выдает это?
Код

 $current_week_start = date("Y-m-d", strtotime("last Monday"));
 $current_week_end = date("Y-m-d", strtotime("Sunday"));


функции date и strtotime использовать не стоит, лучше переходить на DateTime (смотри в доку)

Выдает 
2011-08-29
2011-09-04

Просто не ясно, по какой причине не работает, если подставлять вручную даты в запрос?
По DateTime почитаю мануал, может поможет  smile 
PM MAIL   Вверх
Muerto
Дата 3.9.2011, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Цитата(HipJ @ 3.9.2011,  20:18)
Цитата(Muerto @ 3.9.2011,  18:58)
А что выдает это?
Код

 $current_week_start = date("Y-m-d", strtotime("last Monday"));
 $current_week_end = date("Y-m-d", strtotime("Sunday"));


функции date и strtotime использовать не стоит, лучше переходить на DateTime (смотри в доку)

Выдает 
2011-08-29
2011-09-04

Просто не ясно, по какой причине не работает, если подставлять вручную даты в запрос?
По DateTime почитаю мануал, может поможет  smile

mysql работает с определенным форматом даты... и если память не изменяет это не Y-m-d
возможно в этом проблема... вам следует погуглить посмотреть пример рабочий



--------------------
user posted image
PM MAIL   Вверх
HipJ
Дата 3.9.2011, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 21.1.2006

Репутация: нет
Всего: нет



Даты хранятся в базе, тип поля Date, там формат именно такой 
Не понятен резкий отказ работать, вот в чем прикол... работал же год, даже два. На этой неделе отказался  smile 
Ничего не менялось в БД, данные не удалялись и не менялись  smile

Добавлено через 2 минуты и 40 секунд
Выход вижу один, копаться, тестировать другие варианты запросов.

Это сообщение отредактировал(а) HipJ - 3.9.2011, 20:49
PM MAIL   Вверх
Muerto
Дата 3.9.2011, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Начни с простого where, патом пропиши в ручную BETWEEN  одной и той же дате которая точно в базе есть....


--------------------
user posted image
PM MAIL   Вверх
HipJ
  Дата 5.9.2011, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 21.1.2006

Репутация: нет
Всего: нет



Ну что ж, починилось.. само  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0821 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.