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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: php скрипт создания 2 полей даты зависящих от ID в ячейке таблицы

Сообщения:  [1-10]    [11-20]   [21-30]  [31-40] 

 
 автор: pautina   (17.02.2012 в 21:36)   письмо автору
 
   для: pautina   (17.02.2012 в 20:40)
 

Спасибо Вам за поддержку, нашёл ответ скрипт работает.

  Ответить  
 
 автор: pautina   (17.02.2012 в 20:40)   письмо автору
 
   для: pautina   (17.02.2012 в 17:19)
 

пробовал так

 $sql_up = "update table_1 set `date_1`= FROM_UNIXTIME(UNIX_TIMESTAMP( ".time()." - ($maxid - `ID`)*86400), '%Y %D %M %h:%i:%s %x'),`date_2`= FROM_UNIXTIME(UNIX_TIMESTAMP( ".time()." - ($maxid - `ID`)*86400), '%Y %D %M %h:%i:%s %x') ; "; 

выходит 1970 в каждой ячейке
еще так

$sql_up = "update table_1 set `date_1` = FROM_UNIXTIME( ".time()." - ($maxid - `ID`)*86400), `date_2` = FROM_UNIXTIME( ".time()." - ($maxid - `ID`)*86400) ; ";  

выходит 2012 в каждой ячейке
Саму таблицу вначале создаю запросом

CREATE TABLE `table_1` ( 
  `ID` int(11) default NULL, 
  `Field 1` varchar(255) default NULL, 
  `Field 2` varchar(255) default NULL, 
  `Field 3` longtext, 
  `date_1` int(11) NOT NULL default '0', 
  `date_2` int(11) NOT NULL default '0' 
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT IGNORE INTO table_1 (`ID`,`Field 1`,`Field 2`,`Field 3`,`date_1`,`date_2`) VALUES      
('1','Уроки Photoshop 1','Рубрика: Эффекты 1','Содержимое контента 1','0','0'),    
('2','Уроки Photoshop 2','Рубрика: Эффекты 2','Содержимое контента 2','0','0'),    
('3','Уроки Photoshop 3','Рубрика: Эффекты 3','Содержимое контента 3','0','0'),    
('4','Уроки Photoshop 4','Рубрика: Эффекты 4','Содержимое контента 4','0','0'),    
('5','Уроки Photoshop 5','Рубрика: Эффекты 5','Содержимое контента 5','0','0')

не проверите синтаксис запросов?
может что с типом данных для даты в создаваемой таблице?

  Ответить  
 
 автор: pautina   (17.02.2012 в 17:19)   письмо автору
 
   для: pautina   (17.02.2012 в 12:38)
 

Ни посоветуете что либо?

  Ответить  
 
 автор: pautina   (17.02.2012 в 12:38)   письмо автору
 
   для: Lotanaen   (17.02.2012 в 12:15)
 

эта строка считает дату в виде числа
$sql_up = "update table_1 set `date_1`=".time()."-($maxid - `ID`)*86400,`date_2`=".time()."-($maxid - `ID`)*86400 ; ";

здесь делаем преобразование даты из числа к нужному типу 2011-11-09 05:50:19
$sql_up_date = "SELECT FROM_UNIXTIME($sql_up) ; ";   

здесь выводим дату в столбце
$res = mysql_query($sql_up_date);   

Видимо в синтаксисе ошибка, тип даты не меняется, как код изменить можно?

  Ответить  
 
 автор: Lotanaen   (17.02.2012 в 12:15)   письмо автору
 
   для: pautina   (17.02.2012 в 11:36)
 

даже не знаю что и сказать - все в кучу смешано и без всякой логики. Начните изучение с простых примеров, а также базовые основы РНР и MySQL для начала изучите.
Объясните логически что вы в этом примере делаете?

  Ответить  
 
 автор: pautina   (17.02.2012 в 11:36)   письмо автору
 
   для: Lotanaen   (17.02.2012 в 11:21)
 

Использовал этот участок кода

if ($rows[0]) {   
         $maxid = $rows[0];   
         $sql_up = "update table_1 set `date_1`=".time()."-($maxid - `ID`)*86400,`date_2`=".time()."-($maxid - `ID`)*86400 ; ";   
         $sql_up_date = "SELECT FROM_UNIXTIME($sql_up) ; ";   
         $res = mysql_query($sql_up_date);   
         
     }   

Ни посмотрите?

  Ответить  
 
 автор: Lotanaen   (17.02.2012 в 11:21)   письмо автору
 
   для: pautina   (17.02.2012 в 11:01)
 

FROM_UNIXTIME(unix_timestamp)
почитайте мануал, например по этой ссылке http://www.mysql.ru/docs/man/Date_and_time_functions.html

  Ответить  
 
 автор: pautina   (17.02.2012 в 11:01)   письмо автору
 
   для: Lotanaen   (17.02.2012 в 10:14)
 

А как при помощи FROM_UNIXTIME() преобразовть формат даты с числа 1329461955 в 2011-11-09 05:50:19

  Ответить  
 
 автор: Lotanaen   (17.02.2012 в 10:14)   письмо автору
 
   для: pautina   (16.02.2012 в 18:24)
 

Вот с таким дампом БД все работает как Вы и хотели

CREATE TABLE `table_1` (
  `ID` int(11) default NULL,
  `Field 1` varchar(255) default NULL,
  `Field 2` varchar(255) default NULL,
  `Field 3` longtext,
  `date_1` int(11) NOT NULL default '0',
  `date_2` int(11) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- 
-- Дамп данных таблицы `table_1`
-- 

INSERT INTO `table_1` VALUES (1, 'Уроки Photoshop 1', 'Рубрика: Эффекты 1', 'Содержимое контента 1', 1329116723, 1329116723);
INSERT INTO `table_1` VALUES (2, 'Уроки Photoshop 2', 'Рубрика: Эффекты 2', 'Содержимое контента 2', 1329203123, 1329203123);
INSERT INTO `table_1` VALUES (3, 'Уроки Photoshop 3', 'Рубрика: Эффекты 3', 'Содержимое контента 3', 1329289523, 1329289523);
INSERT INTO `table_1` VALUES (4, 'Уроки Photoshop 4', 'Рубрика: Эффекты 4', 'Содержимое контента 4', 1329375923, 1329375923);
INSERT INTO `table_1` VALUES (5, 'Уроки Photoshop 5', 'Рубрика: Эффекты 5', 'Содержимое контента 5', 1329462323, 1329462323);

дамп уже с результатом работы скрипта

  Ответить  
 
 автор: pautina   (16.02.2012 в 18:24)   письмо автору
 
   для: Lotanaen   (16.02.2012 в 18:01)
 

Как сделать при помощи FROM_UNIXTIME() изменения в скрипте

<?php          
  header
("Content-Type: text/html; charset=UTF-8");         
  
$conn mysql_connect ("localhost""root""")        
            or die (
"Соединение не установлено!");        
  
mysql_select_db("bd_photoshop-portal"$conn);          
     
     
$sql "select max(`ID`) FROM `table_1`;";  
     
$result mysql_query($sql);     
     
$rows mysql_fetch_array($result);
       
     if (
$rows[0]) {  
         
$maxid $rows[0];  
         
$sql_up "update table_1 set `date_1`=".time()."-($maxid - `ID`)*86400,`date_2`=".time()."-($maxid - `ID`)*86400 ; ";  
         
$res mysql_query($sql_up);  
     }  
     else   
         echo 
"error";   
           
    
?>  

и наверно WHERE ID нужно прописать, чтобы значения в каждой ячейке были свои (а то сейчас они в каждой ячейке одинаковые)
наподобе
$query = "UPDATE material_content_into3
SET `Field 3` = '{$newField_3}'
WHERE ID = {$catagory['ID']}";

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]  [31-40] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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