За последние 24 часа нас посетили 19232 программиста и 1608 роботов. Сейчас ищут 835 программистов ...

Вывод Html кода в php в зависимости от условий

Тема в разделе "Прочие вопросы по PHP", создана пользователем carry, 25 сен 2013.

  1. carry

    carry Новичок

    С нами с:
    25 сен 2013
    Сообщения:
    3
    Симпатии:
    0
    подскажите, у меня допустим есть html код - несколько заготовок...
    в зависимости от условий мне нужно выводить этот Html код, или же не выводить вообще...

    Код (Text):
    1. if (условие_1)
    2. {
    3. $Perem1='<td class="td_main_result_search_click" BGCOLOR="'.$color.'"><a href="result_m.php?m='.$row['idManufacturer'].'">'.$row['Manf'].'</a></td>';
    4. $strSQL="sql запрос";
    5. }
    6. if (условие_2)
    7. {
    8. $Perem1='<td class="td_main_result_search_click" BGCOLOR="'.$color.'"><a href="">'.$row['CountryName'].'</a></td>';
    9. $strSQL="sql запрос";
    10. }
    11. mysql_connect("localhost", "root", "") or die (mysql_error ());
    12.     mysql_select_db("test") or die(mysql_error());
    13.     $preparate = mysql_real_escape_string($preparate);  
    14.     $rs = mysql_query($strSQL);
    15.     if($rs === FALSE) {
    16.     die(mysql_error()); // ошибки
    17. }
    18.     unset($_POST['preparate']);
    19.     $k=1;
    20.     while($row = mysql_fetch_array($rs))
    21.     {
    22.     if($k%2==0) $color="#FFFFFF";else $color="#F1F1F1";
    23. $k++;
    24. echo $Perem1;
    25.             }
    26.     mysql_close();


    но при таком выводе в переменных Null!

    получаем

    Код (Text):
    1. <td class="td_main_result_search_click" BGCOLOR=""><a href="result_m.php?m="></a></td>

    т.е. значения в переменных нету! а нужно, чтобы они были, т.к. после запроса в этих переменных должны быть значения....
    когда я вывожу эти переменные через
    Код (Text):
    1.  
    2. echo '<td class="td_main_result_search_click" BGCOLOR="'.$color.'"><a href="result_m.php?m='.$row['idManufacturer'].'">'.$row['Manf'].'</a></td>';

    то все выводит как надо

    но мне надо их выводить через переменные или еще как)) т.к. мне нужно будет выводить много html кода
    у меня никак не получается... помогите
     
  2. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    if (условие_1) и далее код собирает строку из несуществующих переменных. $color, например, создаётся намного ниже по коду.
    Включите вывод ошибок в браузер, чтобы знать, что происходит. В начале документа:
    Код (PHP):
    1. ini_set("display_errors","1");
    2. ini_set("error_reporting", E_ALL); 
     
  3. carry

    carry Новичок

    С нами с:
    25 сен 2013
    Сообщения:
    3
    Симпатии:
    0
    Спасибо... я это понимаю...
    но потом я вывожу эти переменные через echo и эти переменные по сути не должны быть пусты
    но php этого не знает) подскажите, как реализовать мою идею
    облазил весь интернет, похожего пример нигде нету((
     
  4. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Сначала переменную нужно создать, потом уже использовать. Принцип простой.
    Потому что потом их создали в строке if($k%2==0) $color="#FFFFFF";else $color="#F1F1F1";, потому они и существуют "потом", а не тогда, когда надо было выше.
    Идея не понятна. Есть некие "условие_1" и "условие_2" - что это за условия?
    Вот ниже понятно, есть условие if($k%2==0) - $k должно быть чётным.

    Эта строка вообще нигде не используется
    Код (Text):
    1. $preparate = mysql_real_escape_string($preparate);
    и эта для нас, для форума, для примера не нужна
    Код (Text):
    1. unset($_POST['preparate']);
    Только отвлекают.

    Добавлено спустя 10 минут 49 секунд:
    Код (PHP):
    1. <?php
    2. ini_set("display_errors","1");
    3. ini_set("error_reporting", E_ALL);
    4.  
    5. $Perem1='';
    6. $strSQL='';
    7. if (условие_1){
    8.   $strSQL='sql запрос';
    9. }elseif (условие_2){
    10.   $strSQL='sql запрос';
    11. }
    12.  
    13. mysql_connect('localhost', 'root', '') or die (mysql_error ());
    14. $rs = mysql_query($strSQL);
    15. if($rs === FALSE) die(mysql_error()); // ошибки
    16. $k=1;
    17. while($row = mysql_fetch_array($rs)){
    18.   if($k%2==0) $color="#FFFFFF"; else $color="#F1F1F1";
    19.   $k++;
    20.   if (условие_1){
    21.     $Perem1='<td class="td_main_result_search_click" BGCOLOR="'.$color.'">[url="result_m.php?m='.$row['idManufacturer'].'"]'.$row['Manf'].'[/url]</td>';
    22.   }elseif (условие_2){
    23.     $Perem1='<td class="td_main_result_search_click" BGCOLOR="'.$color.'"><a href="">'.$row['CountryName'].'</a></td>';
    24.   }
    25.   echo $Perem1;
    26. }
     
  5. carry

    carry Новичок

    С нами с:
    25 сен 2013
    Сообщения:
    3
    Симпатии:
    0
    Спасибо, ну вот теперь работать должно....
    я просто сразу на нескольких языках пишу - бывает каша в голове
    думал, что в php будет работать такая фишка, как я сразу писал - оказалось нет
    я предполагал, что раз вывожу переменную со строкой html, то php подставит значения в переменные автоматом (типо как "=Forms!"на формах в access :D)

    я параллельно, сделал другим способом:
    делаю if вначале кода, а дальше GoTo на нужный участок, но GoTo вроде как "плохой тон"
    какой способ посоветуете?
    p.s. спасибо за помощь