1

这只是我的第二个问题,所以请温柔,我是 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 语句,但这并没有做任何事情。任何帮助将不胜感激。

4

3 回答 3

1

发生的另一种可能性是您的数据库表中有行,其中有一个空字段 for 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>';   
   }    
}
于 2013-04-17T16:40:07.770 回答
1

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

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

于 2013-04-17T15:27:19.060 回答
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';}
于 2013-04-17T15:29:48.970 回答