За последние 24 часа нас посетили 92725 программистов и 5581 робот. Сейчас ищут 2530 программистов ...

Проверка if не работает. Вопрос почему...?

Тема в разделе "PHP для новичков", создана пользователем djtwister, 9 авг 2012.

  1. djtwister

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

    С нами с:
    9 авг 2012
    Сообщения:
    26
    Симпатии:
    1
    Если ставить тупо 06 07 то все ОК.
    НО, если 08 09 то увы не пашет...
    Однако 10 11 12 месяцы тоже ок....

    ПОЧЕМУ?

    Код (Text):
    1. $mes = date('m');
    2.  
    3. echo '
    4. <select style="width: 100px" name="month">
    5. <option value="01"'; if ($mes == 01){echo' selected';} echo'>ßíâàðü</option>
    6. <option value="02"'; if ($mes == 02){echo' selected';} echo'>Ôåâðàëü</option>
    7. <option value="03"'; if ($mes == 03){echo' selected';} echo'>Ìàðò</option>
    8. <option value="04"'; if ($mes == 04){echo' selected';} echo'>Àïðåëü</option>
    9. <option value="05"'; if ($mes == 05){echo' selected';} echo'>Ìàé</option>
    10. <option value="06"'; if ($mes == 06){echo' selected';} echo'>Èþíü</option>
    11. <option value="07"'; if ($mes == 07){echo' selected';} echo'>Èþëü</option>
    12. <option value="08"'; if ($mes == 08){echo' selected';} echo'>Àâãóñò</option>
    13. <option value="09"'; if ($mes == 09){echo' selected';} echo'>Ñåíòÿáðü</option>
    14. <option value="10"'; if ($mes == 10){echo' selected';} echo'>Îêòÿáðü</option>
    15. <option value="11"'; if ($mes == 11){echo' selected';} echo'>Íîÿáðü</option>
    16. <option value="12"'; if ($mes == 12){echo' selected';} echo'>Äåêàáðü</option>
    17. </select>'.$mes.'';
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Код (Text):
    1.  
    2. $mes = date('n');
    3. echo '
    4. <select style="width: 100px" name="month">
    5. <option value="01"'; if ($mes == 1){echo' selected';} echo'>январь</option>
    6. <option value="02"'; if ($mes == 2){echo' selected';} echo'>февраль</option>
    7. <option value="03"'; if ($mes == 3){echo' selected';} echo'>Март</option>
    8. <option value="04"'; if ($mes == 4){echo' selected';} echo'>Апрель</option>
    9. <option value="05"'; if ($mes == 5){echo' selected';} echo'>Май</option>
    10. <option value="06"'; if ($mes == 6){echo' selected';} echo'>Июнь</option>
    11. <option value="07"'; if ($mes == 7){echo' selected';} echo'>Июль</option>
    12. <option value="08"'; if ($mes == 8){echo' selected';} echo'>Агуст</option>
    13. <option value="09"'; if ($mes == 9){echo' selected';} echo'>Сентябрь</option>
    14. <option value="10"'; if ($mes == 10){echo' selected';} echo'>Октябрь</option>
    15. <option value="11"'; if ($mes == 11){echo' selected';} echo'>Ноябрь</option>
    16. <option value="12"'; if ($mes == 12){echo' selected';} echo'>Декабрь</option>
    17. </select>'.$mes.'';
    PHP убирает нули, так ему хочется :)
     
  3. djtwister

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

    С нами с:
    9 авг 2012
    Сообщения:
    26
    Симпатии:
    1
    млин. я то это подозревал, но не совсем был уверен.
    01 02 03 04 05 06 07 - проработали прекрасно... всю бошку сломал над 08 09.

    придецца делать через $mes = date('n');

    ПАСИБО !
     
  4. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    абалдеть...в трех строчках для меня 2 америки открыто :)
     
  5. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Код (PHP):
    1. $mes = date('n');
    2. $month=array("январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь");
    3. echo "<select style=\"width: 100px\" name=\"month\">";
    4. for($i=0;$i<12;$i++){
    5.     echo "<option value=\"".$i+1."\""; 
    6.     if ($mes==($i+1)){
    7.         echo " selected";
    8.     }
    9.     echo ">".$month[$i]."</option>";
    10. }
    11. echo "</select>".$mes; 
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.068
    Симпатии:
    7
    Код (PHP):
    1. echo'<option value="'.($i+1).'"'.(($mes==($i+1))?' selected="selected"':'').'>
    2.         '.$month[$i].'
    3.     </option>'; 
     
  7. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.639
    Симпатии:
    1
     
  8. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.068
    Симпатии:
    7
    Вы че тут обдолбились все, чтоли!?
    Логика у вас походу глубоко, глубоко в заднице, как и руки =)

    Нате блин играйтесь:
    Раз уже не в состояние придумать.

    Код (PHP):
    1. $mesname=array(
    2. '01'=>'Январь',
    3. '02'=>'Февраль',
    4. '03'=>'Март',
    5. '04'=>'Апрель',
    6. '05'=>'Май',
    7. '06'=>'Июнь',
    8. '07'=>'Июль',
    9. '08'=>'Август',
    10. '09'=>'Сентябрь',
    11. '10'=>'Октябрь',
    12. '11'=>'Ноябрь',
    13. '12'=>'Декабрь'); 
    Код (PHP):
    1. function mes($mes='')
    2. {global $mesname;
    3.     $echo='<select name="mes">';
    4.     foreach($mesname as $key => $val) {
    5.         $echo.='<option value="'.$key.'"'.(((int)$mes==(int)$key)?' selected="selected"':'').'>
    6.                 '.$val.'
    7.             </option>';
    8.     }
    9.     $echo.='</select>';
    10. return $echo;
    11. }
    12.  
    Код (PHP):
    1. echo mes(); 
    Код (PHP):
    1. echo mes(date('m')); 
    Код (PHP):
    1. echo mes(date('m',1337503117)); 
     
  9. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    суров, но справедлив ))))
     
  10. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Не поленился, даже ссылку дал...
    А мне вот расписывать не хотелось :)

    Код (Text):
    1.  
    2. {global $mesname;
    Считаешь использовать в коде global хорошо?
    По мне это пережиток прошлого от которого давно надо было избавиться...

    Да и вообще использовать в качестве индексов массива 01 и т.д. не удобно.
     
  11. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.068
    Симпатии:
    7

    Код (PHP):
    1. $mesname=array(
    2. '1'=>'Январь',
    3. '2'=>'Февраль',
    4. '3'=>'Март',
    5. '4'=>'Апрель',
    6. '5'=>'Май',
    7. '6'=>'Июнь',
    8. '7'=>'Июль',
    9. '8'=>'Август',
    10. '9'=>'Сентябрь',
    11. '10'=>'Октябрь',
    12. '11'=>'Ноябрь',
    13. '12'=>'Декабрь'); 

    Код (PHP):
    1. $mesname=array(
    2. 1=>'Январь',
    3. 2=>'Февраль',
    4. 3=>'Март',
    5. 4=>'Апрель',
    6. 5=>'Май',
    7. 6=>'Июнь',
    8. 7=>'Июль',
    9. 8=>'Август',
    10. 9=>'Сентябрь',
    11. 10=>'Октябрь',
    12. 11=>'Ноябрь',
    13. 12=>'Декабрь'); 
    Что изменится о знаток?

    А как нужно было сделать, о научи нас всех!

    По моему у тебя глаза закрыты или залиты, я не знаю =)

    Код (PHP):
    1. function mes($mes='')
    2. {global $mesname; 

    static ты тут не напишешь.

    Тебя foreach пошлет.
    Или у тебя и foreach уже прошлая тема?)))
     
  12. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Спасибо за комплимент :)

    Станет удобно читать и работать. Лично мне не удобно когда индекс массива 01 и т.д.

    Зачем здесь static? Тебе это слово нравится :)

    В функцию всегда можно передать значение. Global уже никто не использует.

    Я предпочитаю циклы в стиле C++ :)

    Глупый спор, но если настаиваешь получай

    Код (Text):
    1.  
    2. $cur_month = date('n');
    3. $months = array( 1 => "январь", "февраль", "март", "апрель", "май", "июнь", "июль", "август", "сентябрь", "октябрь", "ноябрь", "декабрь");
    4.  
    5. echo month_select($cur_month, $months);
    6.  
    7. function month_select($cur_month, $months){
    8.     $select = '<select>';
    9.     for($i=1;$i<=12;$i++){     
    10.             $selected = ($cur_month == $i) ? '" selected="selected"' : '"';
    11.             $select .= '<option value"'.$i.$selected.'>'.$months[$i].'</option>';
    12.     }
    13.     $select .= '</select>';
    14.    
    15.     return $select;
    16. }
    Да, переменным надо давать понятные названия, а то $mesname без всего остального кода, вызывает ассоциации с message name.
     
  13. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.068
    Симпатии:
    7
  14. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    У меня складывается впечатление, что тебе либо нечего сказать или же из-за скудного лексикона, тебе трудно выражать свои мысли.

    Если тебе нечего мне сказать - молчи, иначе обоснуй.
    Мне твой код то же не нравится, и я обосновал.
    Кстати я тебя не посылаю на говно код, хотя судя по твоему коду имею на это все основания.
     
  15. djtwister

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

    С нами с:
    9 авг 2012
    Сообщения:
    26
    Симпатии:
    1
    Ух ты. один вопрос и стока споров...
    Я только учусь, зато сам. читаю, и иногда спрашиваю...