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]   

> Без описания
imediasun
Отправлено: 17 Сентября, 2013 - 18:23:28
Post Id


Частый посетитель


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


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

[+][+][+][+][+]


Есть в базе данных данные в таблице sales, (структура которой такова)
PHP:
скопировать код в буфер обмена
  1.  
  2. Array ( [0] => Array (
  3.                 [id] => 1
  4.                 [id_card] => 1
  5.                 [start_date] => 2013-09-17
  6.                 [end_date] => 2013-12-31
  7.                 [price] => 2000 )
  8.  

И есть структура вывода
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div id="month_1">
  3. <div class="busy_month">//номер месяца 3 месяца назад от текущей даты
  4. <span><?echo date("m", mktime(0, 0, 0, $m-3, $d, $y)); // 3 месяцев назад?></span>
  5. </div>
  6. <div class="price_month">
  7. <span>//здесь необходимо вывести [price] соответсвующий первой записи, если дата находящаяся в диапозоне от [start_date] до [end_date] равна 3 месяца назад от текущей даты</span>
  8. </div>
  9. </div>
  10. <div id="month_2">
  11. <div class="busy_month">//номер месяца 2 месяца назад от текущей даты
  12. <span><?echo date("m", mktime(0, 0, 0, $m-2, $d, $y)); // 2 месяцев назад?></span>
  13. </div>
  14. <div class="price_month">
  15. <span>//здесь необходимо вывести [price] соответсвующий первой записи, если дата находящаяся в диапозоне от [start_date] до [end_date] равна 2 месяца назад от текущей даты</span>
  16. </div>
  17. </div>
  18. <div id="month_3">
  19. <div class="busy_month">//номер месяца 1 месяц назад от текущей даты
  20. <span><?echo date("m", mktime(0, 0, 0, $m-1, $d, $y)); // 1 месяцев назад?></span>
  21. </div>
  22. <div class="price_month">
  23. <span>//здесь необходимо вывести [price] соответсвующий первой записи, если дата находящаяся в диапозоне от [start_date] до [end_date] равна 1 месяц назад от текущей даты</span>
  24. </div>
  25. </div>
  26.  

(Добавление)
Кроме того это надо подать через foreach разфорчив этот массив получаемый из базы, помогите пожалуйста мыслями кодом кто чем может

(Отредактировано автором: 17 Сентября, 2013 - 18:38:56)

 
 Top
esterio
Отправлено: 17 Сентября, 2013 - 18:41:58
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php foreach($sales as $sale): ?>
  2.     <b><?php echo $sale['id']; ?></b>
  3.     <p>put your HTML here</p>
  4. <?php endforeach; ?>



Вы уже столько времени на форуме и до сих пор такого не знаете. А?!
 
 Top
imediasun
Отправлено: 18 Сентября, 2013 - 12:22:29
Post Id


Частый посетитель


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


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

[+][+][+][+][+]


да это я знаю, а как распознать если дата находящаяся в диапозоне от [start_date] до [end_date] равна 2 месяца назад от текущей даты
 
 Top
VestCoastman
Отправлено: 18 Сентября, 2013 - 14:41:01
Post Id



Посетитель


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


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




imediasun, для этого надо хранить все даты в unix формате - time().
 
 Top
imediasun
Отправлено: 18 Сентября, 2013 - 15:14:06
Post Id


Частый посетитель


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


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

[+][+][+][+][+]


в phpmyadmin это возможно? мне надо какой то специальный формат данных выбрать, или что?
 
 Top
caballero
Отправлено: 18 Сентября, 2013 - 15:15:39
Post Id


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


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


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




phpmyadmin не предназначен для храния дат или каих либо данных


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
teddy
Отправлено: 18 Сентября, 2013 - 15:19:19
Post Id


Участник


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


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




imediasun
time() это циферки, соответственно для хранения подойдет числовой тип данных

По поводу разницы в дате вы уже как то раз спрашивали Улыбка Класс DateTime http://forum.php.su/topic.php?forum=71&topic=11763

(Отредактировано автором: 18 Сентября, 2013 - 15:22:12)

 
 Top
imediasun
Отправлено: 18 Сентября, 2013 - 15:30:44
Post Id


Частый посетитель


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


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

[+][+][+][+][+]


приведите пример пожалуйста как вычислить и вывести что дата находится в диапозоне от [start_date] до [end_date] равна 2 месяца назад от текущей даты
 
 Top
teddy
Отправлено: 18 Сентября, 2013 - 15:35:48
Post Id


Участник


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


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




PHP:
скопировать код в буфер обмена
  1. $start_date = new DateTime('2013-08-15');
  2. $end_date = new DateTime('2013-10-17');
  3. $diff = $start_date->diff($end_date)->format("%m");
  4.  
  5. if($diff >= 2){
  6.    echo "Прошло 2 месяца";
  7. }else{
  8.    echo "Не прошло";
  9. }
 
 Top
LIME
Отправлено: 18 Сентября, 2013 - 15:43:34
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




teddy пишет:
time() это циферки, соответственно для хранения подойдет числовой тип данных
абсолютно нет
во-первых нет никакой связи между пыхавой ф-цией time() и типом поля TIMESTAMP в MySql
а во вторых http://www[dot]mysql[dot]ru/docs/man/DATETIME[dot]html
(Добавление)
ну и соответственно можно разницей во времени рулить уже в запросах
 
 Top
teddy
Отправлено: 18 Сентября, 2013 - 15:49:40
Post Id


Участник


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


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




LIME пишет:
абсолютно нет

Как нет? echo time(); (какие циферки и как их можно использовать, ТС может почитать в мануале) Улыбка Сообщение было написано в связи с заинтересованностью ТС по вышеуказанному совету от VestCoastman

Про UNIX_TIMESTAMP() SQL-овский я знаю, просто вопрос был другой )
 
 Top
LIME
Отправлено: 18 Сентября, 2013 - 15:52:23
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




наверное я неоднозначно написал
"абсолютно нет" относится именно к способу хранения датывремя "циферьками"
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB