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

Twister0Fx

Новичок
подскажите, у меня допустим есть html код - несколько заготовок...
в зависимости от условий мне нужно выводить этот Html код, или же не выводить вообще...

PHP:
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!

получаем

PHP:
<td class="td_main_result_search_click" BGCOLOR=""><a href="result_m.php?m="></a></td>

т.е. значения в переменных нету! а нужно, чтобы они были, т.к. после запроса в этих переменных должны быть значения....
когда я вывожу эти переменные через

PHP:
echo '<td class="td_main_result_search_click" BGCOLOR="'.$color.'"><a href="result_m.php?m='.$row['idManufacturer'].'">'.$row['Manf'].'</a></td>';

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

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

DIG

Новичок
Партнер клуба
А в первом случае откуда берётся переменная $color ? (в третьей строке первого вашего куска кода)
Вы вообще понимаете что код как бы интерпретируется сверху-вниз и слева-направо?
 

Twister0Fx

Новичок
я понимаю, что вверху присваиваю переменной $Perem1 код HTML и не "определенные" переменные, которые = NULL
я предполагал, что при ставке через echo данной строки PHP выведет значение этих переменных, т.к. после обраoения к бд в этих переменных уже есть значения, а не тут то было...
как же сделать, чтобы работало?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Я не понимаю, ты пытаешься вывести неинициализированные переменные и жалуешься, что у тебя они пустые, так? Ты ожидал чего-то другого?
 

Twister0Fx

Новичок
ммм.. я наверное плохо объяснил
опишу подробно:
PHP:
echo '<table>';
mysql_connect("localhost", "root", "") or die (mysql_error ());
    mysql_select_db("test") or die(mysql_error());
    $preparate = mysql_real_escape_string($preparate);  
 $strSQL = "SELECT Dozirovka FROM Doz";
    $rs = mysql_query($strSQL);
    $k=1;
    while($row = mysql_fetch_array($rs)) 
    {
    if($k%2==0) $color="#FFFFFF";else $color="#F1F1F1"; 
$k++;
echo '<tr>';
echo '<td BGCOLOR="'.$color.'">'.$row['Dozirovka'].'</td>';
echo '</tr>';
  }
echo '</table>';
mysql_close();
так все замечательно и в переменной $row['Dozirovka'] есть значение!

но, как только те же действия я делаю загнав строку в переменную и вывожу через echo в $row['Dozirovka'] = NULL
PHP:
$perem= '<tr>';
$perem.= '<td BGCOLOR="'.$color.'">'.$row['Dozirovka'].'</td>';
$perem.='</tr>';
и вместо вывода, как вверху вывожу echo $perem
казалось бы тоже самое, но вывод строки через echo, итог в переменных NULL

вот я хочу разобраться как вывести через переменную или еще каким образом, чтобы данный метод работал
 

Фанат

oncle terrible
Команда форума
Сказать по правде, уже давно чешутся руки объявить классический mysql_query/mysqll_fetch говнокод deprecated и на форуме тоже.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ты понимаешь, что когда ты пишешь код

PHP:
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 запрос";
}
Переменная Perem1 объявляется и туда сразу подставляются ВСЕ возможные значения, то бишь в твоем случае пустота. И PHP глубоко пофигу на твои надежды получить на месте $color цвет, прогнав цикл.

Открой для себя шаблоны или пиши код нормально. Чтобы переменные объявлялись ДО их использования, а не ПОСЛЕ.
 

Twister0Fx

Новичок
>>из сразу подставляются ВСЕ возможные значения
ну теперь я все понял...
главное для себя понять принцип работы php )
а я думал прокатит как =Forms! в access ссылочность данных:)

у меня есть два варианта решения моей задачи:
PHP:
if (условие_1){
    echo'<td class="td_main_result_search_click" BGCOLOR="'.$color.'"><a href="result_m.php?m='.$row['idManufacturer'].'">'.$row['Manf'].'</a></td>';
  }elseif (условие_2){
    echo'<td class="td_main_result_search_click" BGCOLOR="'.$color.'"><a href="">'.$row['CountryName'].'</a></td>';
  }
и
делаю if вначале кода, а дальше GoTo на нужный участок

какой способ правильный?))
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Правильный подход - использовать шаблоны, прочитав хотя бы одну хорошую книгу по PHP.
 
Сверху