While, if and else conditions


While, if and else conditions

我有代码:

while($res = mysql_fetch_array($rst)) 
        if(($res)==TRUE)
         echo "$res[2]";
        else
         echo "<img src='imagini/banner.png'>";

第一个回显,当我有结果时,它显示了我的输出。当if条件为假时,第二次回波不显示图像。请帮忙好吗?:)谢谢。

我想修改的一些格式化的东西来增加可读性

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

然后根据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'>";