php用图像替换数据库结果

时间:2013-05-18 23:53:26

标签: php mysql

这是我第一次发布问题。我是新手,我希望我在这条消息中得到所有格式正确。我喜欢堆栈溢出。它帮助我度过了许多具有挑战性的情况。但这个让我陷入困境。

我想用图像替换MySQL数据库结果。我有一个工厂数据库,我正在查询显示植物清单。我的结果表包括植物类型,植物学名称,通用名称以及它是否是原生植物。

原生植物的结果来自数据库,字母为“y”(表示是)。我想用橡树叶的图像替换'y'。我正在使用的代码显示所有植物上的橡树叶,而不仅仅是原生植物的橡树叶。

怎么办?我觉得我需要在while循环中插入一个if语句,但是当我尝试它时它永远不会工作。我已经尝试了几天不同的解决方案,并且想请求帮助。

这是我得到的最新代码,它显示了每种植物的图像,而不仅仅是本地植物:

while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {

    $native_image = $row['native'];
    $image = $native_image;
    $image = "images/oak_icon.png";


   echo '<tr><td>' . 
        $row['plant_type'] .  
    '</td><td>' . 
        $row['botanical_name'] .   
            $row['common_name'] .           
    '</td><td>' . 
        $image .  
    '</td></table>'; 

}

2 个答案:

答案 0 :(得分:1)

爆炸丸是正确的。您需要检查$ row ['native']是否为'y',然后将图像html设置为所需的任何内容。希望这会有所帮助。

while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {

    $image='';

    if($row['native']=='y'){
        $image = '<img src="images/oak_icon.png" />';
    }

   echo '<tr><td>' . 
        $row['plant_type'] .  
    '</td><td>' . 
        $row['botanical_name'] .   
            $row['common_name'] .           
    '</td><td>' . 
        $image .  
    '</td></table>'; 

}

答案 1 :(得分:1)

我希望我理解你的问题。

MySQL中的某些行有$ row ['native'],等于'y'。如果是这样,那么你是正确的 - 你必须在你的循环中放置一个if语句。 试试吧

while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
    if ($row['native'] == "y") {
        //we show our image
        $image = "images/oak_icon.png";
    } else {
        //we don't have to show our image
        $image = "";
    } 

    echo '<tr><td>' . 
        $row['plant_type'] .  
    '</td><td>' . 
        $row['botanical_name'] .   
        $row['common_name'] .           
    '</td><td>' . 
        $image .  
    '</td></table>'; 

 }

你的IMG标签在哪里? =) 对于未来:在我的项目中,如果我想保存有关图像的信息,这属于MySQL中的行,我只保存图片的名称,它必须在哪里,如果没有,我保存名称空1x1 PNG图像(通常为“blank.png”)。如果你将blank.png放在IMG标签中,它具有固定的高度和宽度,那么IMG只占用页面上的位置。

我希望我帮助过你,这是我的第一个答案! =)

P.S。对不起我的英文...