подскажите, у меня допустим есть html код - несколько заготовок... в зависимости от условий мне нужно выводить этот Html код, или же не выводить вообще... Код (Text): if (условие_1) { $Perem1='<td class="td_main_result_search_click" BGCOLOR="'.$color.'"><a href="result_m.php?m='.$row['idManufacturer'].'">'.$row['Manf'].'</a></td>'; $strSQL="sql запрос"; } if (условие_2) { $Perem1='<td class="td_main_result_search_click" BGCOLOR="'.$color.'"><a href="">'.$row['CountryName'].'</a></td>'; $strSQL="sql запрос"; } mysql_connect("localhost", "root", "") or die (mysql_error ()); mysql_select_db("test") or die(mysql_error()); $preparate = mysql_real_escape_string($preparate); $rs = mysql_query($strSQL); if($rs === FALSE) { die(mysql_error()); // ошибки } unset($_POST['preparate']); $k=1; while($row = mysql_fetch_array($rs)) { if($k%2==0) $color="#FFFFFF";else $color="#F1F1F1"; $k++; echo $Perem1; } mysql_close(); но при таком выводе в переменных Null! получаем Код (Text): <td class="td_main_result_search_click" BGCOLOR=""><a href="result_m.php?m="></a></td> т.е. значения в переменных нету! а нужно, чтобы они были, т.к. после запроса в этих переменных должны быть значения.... когда я вывожу эти переменные через Код (Text): echo '<td class="td_main_result_search_click" BGCOLOR="'.$color.'"><a href="result_m.php?m='.$row['idManufacturer'].'">'.$row['Manf'].'</a></td>'; то все выводит как надо но мне надо их выводить через переменные или еще как)) т.к. мне нужно будет выводить много html кода у меня никак не получается... помогите
if (условие_1) и далее код собирает строку из несуществующих переменных. $color, например, создаётся намного ниже по коду. Включите вывод ошибок в браузер, чтобы знать, что происходит. В начале документа: Код (PHP): ini_set("display_errors","1"); ini_set("error_reporting", E_ALL);
Спасибо... я это понимаю... но потом я вывожу эти переменные через echo и эти переменные по сути не должны быть пусты но php этого не знает) подскажите, как реализовать мою идею облазил весь интернет, похожего пример нигде нету((
Сначала переменную нужно создать, потом уже использовать. Принцип простой. Потому что потом их создали в строке if($k%2==0) $color="#FFFFFF";else $color="#F1F1F1";, потому они и существуют "потом", а не тогда, когда надо было выше. Идея не понятна. Есть некие "условие_1" и "условие_2" - что это за условия? Вот ниже понятно, есть условие if($k%2==0) - $k должно быть чётным. Эта строка вообще нигде не используется Код (Text): $preparate = mysql_real_escape_string($preparate); и эта для нас, для форума, для примера не нужна Код (Text): unset($_POST['preparate']); Только отвлекают. Добавлено спустя 10 минут 49 секунд: Код (PHP): <?php ini_set("display_errors","1"); ini_set("error_reporting", E_ALL); $Perem1=''; $strSQL=''; if (условие_1){ $strSQL='sql запрос'; }elseif (условие_2){ $strSQL='sql запрос'; } mysql_connect('localhost', 'root', '') or die (mysql_error ()); mysql_select_db('test') or die(mysql_error()); $rs = mysql_query($strSQL); if($rs === FALSE) die(mysql_error()); // ошибки $k=1; while($row = mysql_fetch_array($rs)){ if($k%2==0) $color="#FFFFFF"; else $color="#F1F1F1"; $k++; if (условие_1){ $Perem1='<td class="td_main_result_search_click" BGCOLOR="'.$color.'">[url="result_m.php?m='.$row['idManufacturer'].'"]'.$row['Manf'].'[/url]</td>'; }elseif (условие_2){ $Perem1='<td class="td_main_result_search_click" BGCOLOR="'.$color.'"><a href="">'.$row['CountryName'].'</a></td>'; } echo $Perem1; } mysql_close();
Спасибо, ну вот теперь работать должно.... я просто сразу на нескольких языках пишу - бывает каша в голове думал, что в php будет работать такая фишка, как я сразу писал - оказалось нет я предполагал, что раз вывожу переменную со строкой html, то php подставит значения в переменные автоматом (типо как "=Forms!"на формах в access ) я параллельно, сделал другим способом: делаю if вначале кода, а дальше GoTo на нужный участок, но GoTo вроде как "плохой тон" какой способ посоветуете? p.s. спасибо за помощь