За последние 24 часа нас посетили 18059 программистов и 1599 роботов. Сейчас ищут 883 программиста ...

Продление даты в бд - PHP БД

Тема в разделе "PHP и базы данных", создана пользователем wolf777, 9 авг 2015.

  1. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    подскажите из за чего не происходит обновления в бд?

    Код (PHP):
    1. $time = date('d.m.Y H:i', strtotime($record_date) + 86400 * $tarif);
    2. $up="UPDATE shop_shinfo SET record_date=".($time)." WHERE icq='{$icq}'";
    3. mysql_query($up); 
    сделал var_dump

    вывело
    string(71) "UPDATE shop_shinfo SET record_date=20.08.2015 22:30 WHERE icq='3242342'"
     
  2. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Значения даты надо брать в кавычки(выделено красным)
    Но правильнее так:
    Код (PHP):
    1. $up="UPDATE shop_shinfo SET record_date='$time' WHERE icq='{$icq}'"; 
    И формат даты не тот.
     
  3. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    Maputo спасибо огромное) а я уже пол часа бошку ломаю, вроде все верно, а не работает) теперь понятно вся проблема была в кавычках)))

    Добавлено спустя 26 минут 50 секунд:
    а как сделать чтоб время обновлялось, а не выдавало старое время?

    $time = date('d.m.Y H:i', strtotime($record_date) + 86400 * $tarif);

    а то в бд было записано 22:30, так и перезаписывается на 22:30
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    'Y-m-d H:i:s', Карл!
     
  5. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    ну а в чем разница? у меня дата будет выводится год месяц и день а потом время, а мне надо чтоб время перезаписывалось
     
  6. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Если у Вас в поле record_date стоит тип данных CHAR, то разницы нет.
    А ошибка у Вас в числе 86400 - это количество секунд в сутках. Потому и время не меняется.
     
  7. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    а как правильно сделать?
     
  8. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Я, конечно, телепат, но не до такой степени.

    Что за переменная $tarif? Как Вы задаете ей значение?
     
  9. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    это дни))) задаю так
    Код (PHP):
    1. <form action="?mode=ok" method="POST">
    2. <b>» Количество суток:</b><br>
    3. <input type="text" name="tarif" size="20" maxlength="3" value="10">
    4. <br><br>
    5. <input type=submit value="Перейти к оплате">
    6. </form>
    и так передаю

    Код (PHP):
    1. $tarif=intval($_POST[tarif]);
    2.  
     
  10. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Тогда как Вы хотите изменить время, если прибавляете дни?
    Если Вам нужны текущие час и минуты - просто допишите их к дате через пробел.
     
  11. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    хмм, а как их дописать?) а то как ни пробовал ничего не получилось

    Добавлено спустя 11 минут 35 секунд:
    Код (PHP):
    1. $time = date('d.m.Y H:i', strtotime($record_date) + 86400 * $tarif);
    2.  
    H:i', разве не то?
     
  12. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Мне на ум приходит такой вариант:
    Код (PHP):
    1. $time = (str)date('d.m.Y', strtotime($record_date) + 86400 * $tarif) . (str)date(' H:i', time()); 
    Но если бы Вы использовали правильные типы данных для хранения и работы с данными о времени - возможно во многих местах Ваш код выглядел бы проще.
    вы прибавляете ровно сутки (или несколько суток) - часы и минуты не изменятся.
     
  13. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    Parse error: syntax error, unexpected T_STRING in Z:\home\ass.su\WWW\modules\icq\index.php on line 747
     
  14. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Вместо (str) - (string) или вообще без них. Это я на всякий случай.
     
  15. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    ооо точняк работает))) спасибо огроменноооооооооооооое)))))))))))))))))))))