You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将MySQL数据库返回的字符串值替换为对应图片?

问题解决:用图片替换MySQL type字段文本

你的代码问题在于先输出了type字段的原始文本,再追加显示图片,所以会同时出现文字(比如"flag")和图片,而不是用图片替换文字。下面是修正后的代码,同时优化了逻辑结构:

<?php
require_once "db_config.php";

$sql = "SELECT username, message, time, type FROM notice_board ORDER BY time DESC";
$result = $conn->query($sql);

// 建立类型与图片的映射关系,后续维护更方便
$typeImageMap = [
    'flag' => './media/notice_board/flag.png',
    'information' => './media/notice_board/info.png',
    'stop' => './media/notice_board/stop.png',
    'warning' => './media/notice_board/important.png',
    'question' => './media/notice_board/question.png'
];

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo $row["time"]. " | ";
        
        // 根据type值输出对应图片,无匹配时显示原文本
        if (isset($typeImageMap[$row["type"]])) {
            echo '<img width="10" height="10" src="'. $typeImageMap[$row["type"]] .'" alt="'. $row["type"] .'" />';
        } else {
            echo $row["type"];
        }
        
        echo " | ". $row["message"] . "<br>";
    }
} else {
    echo "目前暂无新通知";
}
?>

关键修改说明:

  • 移除了先输出$row["type"]文本的代码,改为直接根据type值输出图片
  • 用关联数组$typeImageMap替代一堆elseif,代码更简洁,后续新增类型只需修改数组
  • 给图片添加alt属性,提升网页可访问性
  • 将英文提示改为中文,更符合使用场景

内容的提问来源于stack exchange,提问作者JTL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:50:18