Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сравнение даты. PHP и MySQL.
 
 автор: Hemp   (01.06.2011 в 08:34)   письмо автору
 
 

Подскажите, как проверить присутствует, ли в БД запись в таблице countpages с полем dat, значение, которого, равно текущей дате. Дата в формате ГГГГ-ММ-ДД.

Тип данных в БД:
CREATE TABLE countpages (
            ......................

            dat DATE  NOT NULL COMMENT "сегдняшняя датав формате ГГГГ-ММ-ДД",
            PRIMARY KEY (id))  ENGINE=MyISAM DEFAULT CHARACTER SET utf8;


В консоле, срабатывает, следующая конструкция:

mysql> SELECT dat, iplist FROM countpages WHERE dat='2011-05-30';
+------------+------------+
| dat        | iplist     |
+------------+------------+
| 2011-05-30 | 127.0.0.1; | 
+------------+------------+
1 row in set (0.00 sec)


С использованием PHP, я пробовал, делать так (код ниже). Срабатывает блок с записью "Запись отсутствует, добавляем запись в бд".

$surrentdate=date("Y-m-d"); //определяем текущюю дату
$query="SELECT dat, iplist FROM countpages WHERE dat='$currentdate'"; //Готовим запрос к БД
$q = mysql_query($query);
if(!$q) exit("ошибка обращения к таблице БД");
if(mysql_num_rows($q)==0)//Значит запись c текущей датой не присутствует в бд
{
echo "Запись отсутствует, добавляем запись в бд";
}
else //если присутствует, то
{
echo "Такая, записьприсутствует в БД, совершаем дальнейшие телодвижения";
}

  Ответить  
 
 автор: Lotanaen   (01.06.2011 в 09:43)   письмо автору
 
   для: Hemp   (01.06.2011 в 08:34)
 

Вы разные переменные используете $surrentdate и $currentdate', исправьте....

$surrentdate=date("Y-m-d"); //определяем текущюю дату
$query="SELECT dat, iplist FROM countpages WHERE dat='$currentdate'"; //Готовим запрос к БД

  Ответить  
 
 автор: Hemp   (01.06.2011 в 10:10)   письмо автору
 
   для: Lotanaen   (01.06.2011 в 09:43)
 

Lotanaen, спасибо!!! Не заметил. Поправил:
$currentdate=date("Y-m-d"); //определяем текущюю дату
$query="SELECT dat, iplist FROM countpages WHERE dat='$currentdate'"; //Готовим запрос к БД


Но результат тот же. Запись с текущей датой присутствует, в БД, но, выводит сообщение "Запись отсутствует, добавляем запись в бд".
Пробовал, так, но результат преждний:
$query="SELECT dat, iplist FROM countpages WHERE dat='2011-06-01'";

Как понимаю, проблема в самом запросе.

  Ответить  
 
 автор: Lotanaen   (01.06.2011 в 10:25)   письмо автору
 
   для: Hemp   (01.06.2011 в 10:10)
 

а соединение с БД нормальное?

  Ответить  
 
 автор: Hemp   (01.06.2011 в 10:32)   письмо автору
 
   для: Lotanaen   (01.06.2011 в 10:25)
 

да. Всё, что нужно из БД отображается. Плюс проверка стоит
if(!$q) exit("ошибка обращения к таблице БД"); 

  Ответить  
 
 автор: Miha_Kregov   (01.06.2011 в 11:32)   письмо автору
 
   для: Hemp   (01.06.2011 в 10:32)
 

может так:


$query="SELECT dat, iplist FROM `countpages` WHERE `dat`='".$currentdate."'"; //Готовим запрос к БД

  Ответить  
 
 автор: Lotanaen   (01.06.2011 в 12:10)   письмо автору
 
   для: Miha_Kregov   (01.06.2011 в 11:32)
 

ну тогда уж все отметить:
$query="SELECT `dat`, `iplist` FROM `countpages` WHERE `dat`='".$currentdate."'"; //Готовим запрос к БД

  Ответить  
 
 автор: Hemp   (01.06.2011 в 12:12)   письмо автору
 
   для: Miha_Kregov   (01.06.2011 в 11:32)
 

Всем, спасибо, разобрался. ))))
В коде, ниже не хватало одной фигурной скобки!!!!!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования