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

Форум MySQL

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

 

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

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

тема: период

Сообщения:  [1-10]   [11-15] 

 
 автор: Trianon   (10.07.2008 в 13:58)   письмо автору
 
   для: o.k.computer   (10.07.2008 в 13:23)
 

Номер квартала средствами mysql можно определить с помощью функции QUARTER().
SELECT QUARTER(NOW()) AS quarter
Год и квартал вместе можно получить, сцепив вместе одно с другим:
SELECT CONCAT(YEAR(NOW()), '/', QUARTER(NOW())) AS quarter
Для определения номера недели в году имеются функции WEEK() и WEEKOFYEAR()
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_week

   
 
 автор: o.k.computer   (10.07.2008 в 13:47)   письмо автору
 
   для: o.k.computer   (10.07.2008 в 13:23)
 

QUARTER .

спасибо.

   
 
 автор: o.k.computer   (10.07.2008 в 13:23)   письмо автору
 
   для: Trianon   (10.07.2008 в 12:40)
 

да, спасибо.

и еще один вопрос.

как узнать что даты в одном квартале года?

if ($res['period']=='31') . 

    {
    $check=mysql_query("select MONTH('".$res['new']."') = MONTH(date(now())) as flag");
    $c=mysql_fetch_array($check);
    }
    
    if ($res['period']=='7')

    {

    $check=mysql_query("select WEEK('".$res['new']."') = WEEK(date(now())) as flag");
    $c=mysql_fetch_array($check);
    }

   
 
 автор: Trianon   (10.07.2008 в 12:40)   письмо автору
 
   для: o.k.computer   (10.07.2008 в 12:26)
 

Почему нельзя? Можно.
Вы можете запросить год от даты ( неважно - текущей, из поля или из предвычисленной константы, как у Вас в $new) можете запросить месяц, можете год и месяц вместе.
SELECT YEAR(NOW()),MONTH(NOW()), LEFT(NOW(),7)


Между прочим первый запрос (который у Вас из двух состоит)

$newrepdate=mysql_query("SELECT `reg`, `new` FROM form where id_form='".$row['id']."'");
        $new = mysql_fetch_array($newrepdate);
        
        $check=mysql_query("select '".$new['new']."' > date(now()) as flag");
        $c=mysql_fetch_array($check);
        
        if ($c['flag']==0) // отчет просрочен 

можно (и нужно наверное) записать одним:

$newrepdate=mysql_query("SELECT `reg`, `new`, (date(`new`) > date(now())) AS flag  FROM form where id_form='".$row['id']."'");
        $new = mysql_fetch_array($newrepdate);
        
        if ($new['flag']==0) // отчет просрочен 

   
 
 автор: o.k.computer   (10.07.2008 в 12:26)   письмо автору
 
   для: Trianon   (10.07.2008 в 12:17)
 

а почему нельзя месяц из now сравнивать с мес. поля new? если они не совпадают, то смещаем new на period?

   
 
 автор: Trianon   (10.07.2008 в 12:17)   письмо автору
 
   для: o.k.computer   (10.07.2008 в 12:09)
 

А какие с ними сложности?
Я не совсем понял проблему. Точнее - совсем не понял.

   
 
 автор: o.k.computer   (10.07.2008 в 12:09)   письмо автору
 
   для: Trianon   (10.07.2008 в 11:48)
 

спасибо. это вариант. а как быть с неделей/кварталом?

   
 
 автор: Trianon   (10.07.2008 в 11:48)   письмо автору
 
   для: o.k.computer   (10.07.2008 в 11:42)
 

По-моему, нужно позволить пользователю в форме загрузки отчета указывать месяц и год в отдельном поле (полях).
Месяц и год, за который делается отчет.

Иначе неопределенки Вам не избежать.

При подготовке умалчиваемых полей формы можно учитывать и текущую дату и наличие строк в таблице БД. Но поле тем не менее позволять менять.

   
 
 автор: o.k.computer   (10.07.2008 в 11:42)   письмо автору
 
   для: o.k.computer   (10.07.2008 в 10:44)
 

( неверно все

допустим пользователь решил разместить отчет раньше срока/ нашел ошибку и загрузил его снова. дата в поле каждый раз передвигается на period.


        $newrepdate=mysql_query("SELECT `reg`, `new` FROM form where id_form='".$row['id']."'");
        $new = mysql_fetch_array($newrepdate);
        
        $check=mysql_query("select '".$new['new']."' > date(now()) as flag");
        $c=mysql_fetch_array($check);
        
        if ($c['flag']==0) // отчет просрочен
        
{
        
        $pr=mysql_query("SELECT to_days(now())-to_days('".$new['new']."') as srok");
        $srok = mysql_fetch_array($pr);            
        $color="red";
        $text=" (дней просрочки ".$srok['srok'].")";
        
}


        else 

        {
    
        $color="#006699";        
        $text="";
        
        }        



Добавление отчета: 
$query=mysql_query("UPDATE form SET reg = now(), new = new + interval '".$res['period']."' Day  WHERE id_form='".$res['id_form']."'"); // период (7 дней, 31, 93)     

   
 
 автор: o.k.computer   (10.07.2008 в 10:44)   письмо автору
 
   для: Trianon   (10.07.2008 в 10:32)
 

>>>а если в days хранить дату сл. размещения отчета [15.07.2008], при добавлении отчета
добавлять в reg - now() [10.07.2008], days: days + interval 4 week [15.08.2008], в period хранить периодичность в неделях (1, 4, 12)?

т.е. days-now()== 1 >> отчет актуален
==0 >> просрочен


?

   

Сообщения:  [1-10]   [11-15] 

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

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