Выборка из БД

Статус
В этой теме нельзя размещать новые ответы.

$lider

Бывает
Выборка из БД

Немного кода:

$time = date("j.m.y H:i");
$db = mysql_connect("localhost","root");
mysql_select_db("moto",$db);
$result = mysql_query("SELECT * FROM gruz WHERE 1 ORDER BY id DESC LIMIT 0,20",$db);

Переменная $time записывает текущую дату и время в столбец curdate таблицы в формате 8.08.02 22:52. А при выборке по запросу выдается последние 20 строк (ORDER BY id DESC LIMIT 0,20). Найдено допустим 50 строк на протяжении 2-х недель. А мне хочется выводить за последние 3 дня. Как это сделать?
-----
Где живут мыши?
http://www.gryzun.da.ru
 

RomikChef

Guest
1.Не видно никакого кода, который записывает $time = date("j.m.y H:i"); в таблицу.
2. Если ты хочешь производить операции над датами, то хранить эти даты надо
а) в соответствующих типах полей
б) в формате не таком, как твоя левая нога захотела, а том, который эти поля поддерживают.

а выбирать за три дня можно с помощью оператора date_sub
 

$lider

Бывает
Я так понимаю что

$result = mysql_query("SELECT * FROM gruz WHERE 1 AND date > DATE_SUB(NOW(), INTERVAL 3 DAY) ORDER BY id DESC LIMIT 0,20",$db);

:D :D :D
 

RomikChef

Guest
Да, но если ты вставляешь ЭТО - date("j.m.y H:i"); , то выберет у тебя в лучшем случае, цену фруктов на одесском базаре.

сделай поле формата datetime и вставляй туда now() в запросе, безо всякого РНР.
 

$lider

Бывает
Ну в общем я понял, но я ведь хочу что-бы дата была типа 8.08.02 22:52 !
А мне по переменной now() в таблице чего выдаст ???
 

RomikChef

Guest
now() - не переменная, а функция.
как ЛЕЖАТ данные - тебя не должно волновать.

Надо понимать, как роаботает база данных.
Ты вообще не знаешь - какая там запись первая, какая последняя, в каком формате, на каком месте что лежит.

Ты САМ должен при запросе указать - и порядок и номер и формат.
в частности, форматирует дату функция
date_format()
 

$lider

Бывает
Originally posted by RomikChef
now() - не переменная, а функция.
как ЛЕЖАТ данные - тебя не должно волновать.

Надо понимать, как роаботает база данных.
Ты вообще не знаешь - какая там запись первая, какая последняя, в каком формате, на каком месте что лежит.

Ты САМ должен при запросе указать - и порядок и номер и формат.
в частности, форматирует дату функция
date_format()
$sql = "INSERT INTO `auto` (`curdate`) VALUES (now())";
Так ???
 

$lider

Бывает
Ну я зделал поле автоматическое datetime, а оно мне выдает постоянно 00.00.00 !
 

Larson

Новичок
Автор оригинала: $lider
Ну я зделал поле автоматическое datetime, а оно мне выдает постоянно 00.00.00 !
Насколько я понял из мана автоматическое можно делать поле в формате timestamp.
 

$lider

Бывает
Larson

Я в свойствах столбца curdate указал тип данных datetime !
Так оно не отрабатывается!
 

RomikChef

Guest
datetime - не автоматический.
для занесения в него текущей даты в запросе надо писать now()
 

$lider

Бывает
сделай поле формата datetime и вставляй туда now() в запросе, безо всякого РНР.
Зделал, вставляю now().
Формат 2002-09-09 04:32:40
Как мне его настроить и привесть в вид 04:32 09-09-02 ?
 

RomikChef

Guest
формат у этой функции искать не надо.
у нее один формат.
А ту, у которой есть я тебе раньше написал.
перечитай тред с начала - авось, что-нибудь поймешь
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху