2

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

我想用图像替换 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>'; 

}
4

2 回答 2

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>'; 

}
于 2013-05-19T00:13:39.243 回答
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 只会占据您页面上的位置。

希望对您有所帮助,这是我的第一个答案!=)

PS对不起我的英语...

于 2013-05-19T00:13:56.390 回答