Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Редактирование последних занесённых записей

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
glutaminefree
Отправлено: 01 Апреля, 2011 - 12:59:55
Post Id



Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Здравствуйте.
Имеется таблица с несколькими полями.
При добавлении записей в эту таблицу, одному из полей типа tinyint будет присваиваться значение 0, но через некоторое время (10-30 минут), нужно будет отредактировать это поле в значение 1.
Так вот, как бы по-оптимальнее можно будет осуществлять это редактирование? Может быть индексы добавить или может есть способ обращаться к определённому количеству последних созданных данных? Растерялся
 
 Top
Viper
Отправлено: 01 Апреля, 2011 - 13:11:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




glutaminefree через индексы однозначно.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
glutaminefree
Отправлено: 01 Апреля, 2011 - 13:55:57
Post Id



Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




А не подскажете, через какие? А то я в документации только про индексы для полей типов varchar и text нашёл.
 
 Top
DeepVarvar Супермодератор
Отправлено: 01 Апреля, 2011 - 14:22:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




glutaminefree зачем делать лишнюю работу?
Гораздо проще поставить TIMESTAMP во время добавления записи,
а потом хоть через год вытащить эту запись и пероверить:
PHP:
скопировать код в буфер обмена
  1. $delay = time()-1800; // пол часа
  2. if ($row['add_timestamp'] < $delay) echo "запись уже старая!!!";

Хотя все зависит от задач...
 
 Top
glutaminefree
Отправлено: 01 Апреля, 2011 - 14:30:55
Post Id



Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Нет, так не пойдёт. Событие инициирующее смену значения переменной будет вызывать пользователь. И по времени тут никакой привязки нет. Я про него вообще только для наглядности написал.
 
 Top
Viper
Отправлено: 01 Апреля, 2011 - 14:41:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




glutaminefree обычное поле типа int(11) auto_increment not null + primary key к нему же.

Вообще из ваших вопросов возникает ещё больше вопросов чем ответов.
Собстно фраза
Цитата:
последних занесённых записей
никак не подразумевает по какому признаку вы определяете что они последние? Обычно "последние записи" это записи добавленные за определенный промежуток времени. Что в вашем случае?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
glutaminefree
Отправлено: 01 Апреля, 2011 - 14:47:34
Post Id



Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Ну ситуация такая. В БД будет заносится заявка со временем её поступления. И в поле tinyint планирую заносить 0. После выполнения заявки, для её закрытия надо будет 0 изменить на 1. Так же это поле нужно для выборки, при составлении отчёта о выполненных заявках, чтобы туда не попали не выполненные "висящие" заявки.

Вот и прошу помощи, как бы оптимизировать это всё для поиска и вывода.
 
 Top
Viper
Отправлено: 01 Апреля, 2011 - 15:30:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




glutaminefree ну вот и чудно. Когда вы выводите список заявок, то в форме редактирования(или ссылке на отметку о выполнении) вы "добавляете" id заявки из БД. Если у вас поле времени DATETIME (а не просто TIME или DATE) то можете ещё сортировку по времени делать.

К примеру у вас ссылка на выборку вида index.php?select=1,2,3, либо у вас напротив каждой строки чекбокс и вы отметили нужные. Если нужно выбрать все заявки не по id, то просто удалите кусок `id` IN(1,2,3) из запроса
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT `requests`
  2. FROM `table`
  3. WHERE `id` IN(1,2,3) AND `is_closed` = 1 AND `pub_time` < CURDATE() AND `pub_time` > DATE_ADD(CURDATE(), INTERVAL -1 DAY)


выберет все заявки из таблицы у которых id 1, 2 и 3, и являются закрытыми(поле is_closed) и дата их подачи находится в пределах одних суток от текущего момента.

ЗЫ! Запрос условный.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
glutaminefree
Отправлено: 01 Апреля, 2011 - 15:56:28
Post Id



Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




То есть не нужно никаких индексов дополнительно создавать?
 
 Top
Viper
Отправлено: 04 Апреля, 2011 - 08:15:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




glutaminefree если они у вас есть, то не нужно.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
glutaminefree
Отправлено: 04 Апреля, 2011 - 16:31:59
Post Id



Новичок


Покинул форум
Сообщений всего: 39
Дата рег-ции: Апр. 2011  


Помог: 0 раз(а)




Спасибо за помощь Хорошо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB