За последние 24 часа нас посетили 31973 программиста и 1380 роботов. Сейчас ищут 879 программистов ...

[UPDATE] Вопрос по программированию

Тема в разделе "PHP для новичков", создана пользователем Danil005, 25 июл 2015.

  1. Danil005

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

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    Можно-ли сделать так, что бы в UPDATE можно было использовать WHERE с условием:

    Код (PHP):
    1. ("UPDATE `table` SET `test`='1' WHERE `month`=".date('m')>=$month." ")
    ??

    $month - там заранее записанная просроченный месяц.
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Re: Вопрос по программированию

    конешь можно :)))
     
  3. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: Вопрос по программированию

    да, в UPDATE можно использовать WHERE. отлаживайте запрос. у вас дейт(м) дает строку которую вы сравниваете с другой переменной на "больше-равно" и результат этого сравнения - БУЛЕВ - вдруг хотите сравнить с месяцев в скуэльном запросе. туда подставится ноль или единица по правилу каста булева в строку и значит в запросе месяц может быть нулем или единицей. с январем понятно. а нулевой это что за месяц?

    если я правильно логику понимаю то вы хотите чтоб в самом запросе сама субд проводила сравнение. тогда достаточно просто правильно строить переменные в строку.
     
  4. Danil005

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

    С нами с:
    2 янв 2015
    Сообщения:
    528
    Симпатии:
    30
    Вот мой код.

    Код (PHP):
    1. $gr =mysql_query("SELECT * FROM `tastopgrouptime` WHERE 1");
    2.     {
    3.     while($row=mysql_fetch_assoc($gr))
    4.     {
    5.     $TAday=$row['day'];
    6.     $TAmonth=$row['month'];
    7.     $TAtime=$row['time'];
    8.     $TAQmin=$row['min'];
    9.     $TAyears=$row['years'];
    10.     }
    11.     } 
    12.     
    13. $TAone = ($TAday <= date('j'));
    14. $TAtwo = ($TAmonth <= date('m'));
    15. $TAthree = ($TAtime <= date('H'));
    16. $TAfour = ($TAQmin <= date('i'));
    17. $TAfive = ($TAyears <= date('Y'));
    18.  
    19. //$TAgtime = ($TAone AND $TAtwo AND $TAthree AND $TAfour AND $TAfive);
    20.  
    21. //$sez12=mysql_query("select * from `tastopgrouptime`");
    22. if($TAtwo) {
    23.     mysql_query("UPDATE `tastopgrouptime` SET `dontu`='<font color=red>Истек</font>' WHERE `month`=".$month>=date('m')." ");
    24. }
    Но вот проблема. Он не хочет менять значение.
    В столбце MONTH записано число 8, а следуя из логики я задал: "Если month будет >= по сей день месяцу, то UPDATE", но замена не производится.
     
  5. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    я только что объяснил. напечатай текст запроса который получается после конкатенации строки и прочитай то что отправляется субд.
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    а еще лучше - отлаживай каждый свой шаг ;)
    а то по коду видно, что делаешь что то не то :)
     
  7. rodent90

    rodent90 Новичок

    С нами с:
    26 мар 2015
    Сообщения:
    533
    Симпатии:
    37
    Danil005, дело в том, что у вас каша в голове, по этому и не получается.
    Код (PHP):
    1. WHERE `month`>=".date('m')." 
    Хотя, хрен знает, откуда вы берете $month, и что с чем пытаетесь сравнивать " Каша в голове ".