У меня есть код:
while($res = mysql_fetch_array($rst))
if(($res)==TRUE)
echo "$res[2]";
else
echo "<img src='imagini/banner.png'>";
Первое эхо показывает вывод, когда у меня есть результаты.
Второе эхо не показывает изображение, если условие ложно.
Любая помощь, пожалуйста? 🙂
Благодарю.
Несколько вещей, которые я бы исправил, чтобы улучшить читаемость
while($res = mysql_fetch_array($rst))
if(($res)==TRUE)
echo "$res[2]";
else
echo "<img src='imagini/banner.png'>";
К этому
while(false !== ( $res = mysql_fetch_array($rst) ) ){
if($res[2] == true){ // or isset( $res[2] ) ?
echo "$res[2]";
}else{
echo "<img src='imagini/banner.png'>";
}
}
Давайте начнем с вершины. mysql_fetch_array
http://php.net/manual/en/function.mysql-fetch-array.php ~ возвращает массив или false.
Затем мы оцениваем его по ложному и присваиваем его значение $ res. Следующий дополнительный ()
вокруг $res
бессмысленно, даже проверка здесь Скорее всего ваша проблема означает меньше, он никогда не войдет в цикл как ложный, поэтому внутри цикла $res
никогда не бывает ложным Последнее добавление правильного отступа и {brackets}
,
На самом деле вы, вероятно, намерены это?
if( mysql_num_rows( $rst ) ){
while(false !== ( $res = mysql_fetch_array($rst) ) ){
echo $res[2];
}
}else{
echo '<img src="imagini/banner.png">';
}
В эквивалентном PDO
if( $stmt->rowCount() ){
while(false !== ( $res = $stmt->fetch(PDO::FETCH_NUM) ) ){
echo $res[2];
}
}else{
echo '<img src="imagini/banner.png">';
}
Пожалуйста, обратите внимание, что семейство функций mysql_ * устарело с PHP5.5
http://php.net/manual/en/book.pdo.php
Скорее всего, здесь виноват относительный путь. Убедитесь, что это правильно установлено.
РЕДАКТИРОВАТЬ
Хотя путь может быть проблемой, здесь он не самый большой.
То, что вы, скорее всего, хотите, это либо:
// this tests if there are zero or more rows in your result
if (mysql_num_rows($rst)==0)
{
echo "<img src='imagini/banner.png'/>";
}
else
{
while ($res=mysql_fetch_array($rst))
{
echo $res[2];
}
}
или же
// this tests, for each row, if a column is set or not
while ($res=mysql_fetch_array($rst))
{
// index is the index of the column that can be set or not
if (empty($res[index]))
{
echo "<img src='imagini/banner.png'/>";
}
else
{
echo $res[2];
}
}
Кроме того, вы, кажется, восстановить <img>
теги из базы данных, так как у вас есть по умолчанию <img>
тег как альтернатива. Если $res[2]
имеет этот шаблон <img src='some_path'/>
возможно, вы можете изменить содержимое базы данных, чтобы сохранить только относительный путь (без тега) и отображать тег в цикле while.
Попробуйте переключить if и else, чтобы вы могли увидеть, связано ли это с тем, что вы выводите, или оно не в состоянии достигнуть else.
if(($res)==FALSE)
echo "<img src='imagini/banner.png'>";