忽略if语句

时间:2013-04-17 15:23:07

标签: php html mysql internet-explorer if-statement

这只是我的第二个问题,所以请保持温和,我是PHP的新手。

我编写了一个查询数据库的语句,然后在创建div以放入图像之前检查文件以查看是否存在相关文件。问题是输出为没有图像的行创建div。

$query = "SELECT vehicle_make_logo FROM vehicle_makes";

$result = mysql_query($query);
if(!$result) die ("Database access failed: " . mysql_error());

$rows = mysql_num_rows($result);

for  ($j = 0; $j < $rows; ++$j)
{       
   $row = mysql_fetch_row($result);
   $image = 'images/vehicleBrands/'.$row[0];
   if(file_exists($image)){
       echo '<div class="component"><a href=""><img class="icons" src="images/vehicleBrands/'.$row[0].'"></a></div>';   
       }    
}

我尝试添加一个空的else语句,但是没有做任何事情。  任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

浏览器永远不会覆盖PHP代码,因为它永远不会看到PHP代码。浏览器只会准确呈现PHP代码传递给它的内容。在IE创建额外的div标签的情况下,可能是您的HTML格式错误并且IE尝试将其标准化并在此过程中创建额外的div以关闭您可能忽略的一些打开的标签。

尝试复制页面的view-source代码并通过HTML验证程序运行以查看。

答案 1 :(得分:1)

正在发生的事情的另一种可能性是你的数据库表中有行verhicle_make_logo的空字段,此时你的if语句正在检查该文件夹是否存在,这显然是这样。如果您确定不是这种情况,请忽略以下内容,如果是,那么这可能是一个解决方案。

<?php

$query = "SELECT vehicle_make_logo FROM vehicle_makes";

$result = mysql_query($query);
if(!$result) die ("Database access failed: " . mysql_error());

$rows = mysql_num_rows($result);

for  ($j = 0; $j < $rows; ++$j)
{       
   $row = mysql_fetch_row($result);
   $image = 'images/vehicleBrands/'.$row[0];
   if(!empty($row[0]) && file_exists($image)){
       echo '<div class="component"><a href=""><img class="icons" src="images/vehicleBrands/'.$row[0].'"></a></div>';   
   }    
}

答案 2 :(得分:0)

不要想一下,无论你使用什么样的浏览器,都会影响PHP的行为方式。因为,它不能!它可能看起来像你这样,因为有时候,PHP脚本输出/回显的 HTML标记/代码 ...可能会以不同的方式呈现,根据您的浏览器类型IE使用,特别,因为它很糟糕。现在,要回到您的代码,请尝试此

<?php

$query = "SELECT vehicle_make_logo FROM vehicle_makes";

$result = mysql_query($query) or die(mysql_error());
if(mysql_num_rows($rows) > 0) {

    for($j=0; $j < count($rows); ++$j){

        $row = mysql_fetch_row($result);
        $image = 'images/vehicleBrands/'.$row[0];
        if(file_exists($image)){
       echo '<div class="component">
            <a href=""><img class="icons" src="images/vehicleBrands/'.$row[0].'"></a></div>';   
       }    
    }
}else {echo 'No record found';}