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