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

Форум MySQL

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

 

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

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

тема: Выводить данные по изменяющемуся полю таблицы?
 
 автор: xpom   (04.07.2007 в 14:29)   письмо автору
 
 

Подскажите, пожалуйста, вот я хочу выводить данные из таблицы в очередности одного поля таблицы, а как можно сделать, чтобы у тех данных в таблице у которых обновилось это поле, выводились первыми? Т.е. нужно, чтобы строилось в порядке обновления? Что в это поле нужно заносить не знаю, суммировать числа сдесь не катит?

   
 
 автор: Unkind   (04.07.2007 в 14:54)   письмо автору
 
   для: xpom   (04.07.2007 в 14:29)
 

Нужно добавить дополнительный столбец, в котором можно хранить время в UNIX TIMESTAMP. При обновлении записи, нужно обновлять это поле тоже. При запросе данных из таблицы делать сортировку в порядке убывания UNIX TIMESTAMP.

   
 
 автор: xpom   (04.07.2007 в 15:02)   письмо автору
 
   для: Unkind   (04.07.2007 в 14:54)
 

>При запросе данных из таблицы делать сортировку в порядке убывания UNIX TIMESTAMP.
Это я понял!

А, что это за столбец UNIX TIMESTAMP, его можно добавить в уже существующей таблице? Можите привести примерчик добавления такого столбца?

   
 
 автор: xpom   (04.07.2007 в 15:34)   письмо автору
 
   для: xpom   (04.07.2007 в 15:02)
 

Это мы сделаем столбец по времени, а нужно будет еще и по дате? Или можно все в одно столбце сделать?

   
 
 автор: xpom   (04.07.2007 в 17:16)   письмо автору
 
   для: xpom   (04.07.2007 в 15:34)
 

А вот, есть такой запрос к Б.Д. SELECT NOW, т.е можно вот так:

$vr = mysql_query("SELECT NOW",$db);

Этот запрос должен вывести нынешнюю дату и время.
Можно ли это, что выведет закинуть в поле, по которому потом можно будет строить порядок вывода данных? Или не получится?

   
 
 автор: xpom   (04.07.2007 в 17:59)   письмо автору
 
   для: xpom   (04.07.2007 в 17:16)
 

Помогите, кто-нибудь!!!

   
 
 автор: Night_Charter   (04.07.2007 в 18:29)   письмо автору
 
   для: xpom   (04.07.2007 в 17:59)
 

Добавляем столбец)

<?php
mysql_query
("alter table db add colname TIMESTAMP");
// db - имя таблицы
// colname - имя столбца
?>

   
 
 автор: xpom   (04.07.2007 в 18:42)   письмо автору
 
   для: Night_Charter   (04.07.2007 в 18:29)
 

Подскажите, пожалуйста, как этот столбец потом обновить у тех данных у которых id равное например 5?

   
 
 автор: xpom   (05.07.2007 в 10:26)   письмо автору
 
   для: xpom   (04.07.2007 в 18:42)
 

Подскажите, не пойму как столбец TIMESTAMP обновить?
Не знаю где время брать и какой командой, INSERT или другой...

   
 
 автор: Trianon   (05.07.2007 в 10:41)   письмо автору
 
   для: xpom   (05.07.2007 в 10:26)
 

Зря Вы взяли этот тип.... С ним очень непросто работать.
Во первых, если не знать тонкости, он постоянно норовит обновиться сам собой.
Во вторых, он держит довольно скромный диапазон дат.
Возьмите лучше тип DATETIME .
Значения полей с таким типом можно спокойно задавать (командой INSERT) и обновлять (командой UPDATE) . Формат типа - строка вроде '2007-07-05 10:42:33' .
Впрочем, у TIMESTAMP - такой же.

   
 
 автор: xpom   (05.07.2007 в 11:09)   письмо автору
 
   для: Trianon   (05.07.2007 в 10:41)
 

А, если задавать командой INSERT , это вре нужно от куда-то брать?
А обновлять это будет выглядеть вот так:

 mysql_query("UPDATE INTO tabl (time) WHERE SID=".$nm,$db);

Или это не правильно?

   
 
 автор: Trianon   (05.07.2007 в 11:32)   письмо автору
 
   для: xpom   (05.07.2007 в 11:09)
 

ваш вопрос не связан именно со временем.
Чтобы задать или обновить любое поле, его значение нужно откуда-то взять.
Не находите?
В Вашем примере я его не обнаружил.

   
 
 автор: xpom   (05.07.2007 в 11:54)   письмо автору
 
   для: Trianon   (05.07.2007 в 11:32)
 

Не нахожу.
Я не знаю где значение времени найти?
Подскажите, где взять значение нынешнего времени, чтобы его обновить?

   
 
 автор: Trianon   (05.07.2007 в 14:48)   письмо автору
 
   для: xpom   (05.07.2007 в 11:54)
 

>Не нахожу
Плохо, что не находите.

>Подскажите, где взять значение нынешнего времени, чтобы его обновить?

Вот если бы Вы написали, что присвоить надо именно текущее время - все бы сразу встало на свои места.
Это функция NOW() в mysql
 mysql_query("INSERT INTO  tabl (`time`) VALUES( NOW() )",$db); 

 mysql_query("UPDATE tabl SET `time` = NOW() WHERE SID=$nm",$db); 


Между прочим, TIMESTAMP - самообновляющееся поле - для этой цели и вправду подходит лучше.
`time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,

такое поле обновляется само собой.
Безо всяких дополнительных запросов.

   
Rambler's Top100
вверх

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