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

如何从MySQL表获取指定列值并在article.php页面展示

嘿,这个需求其实很好实现,而且完全可以用foreach循环来搞定!我来一步步给你拆解怎么做:

第一步:替换原页面的Delete按钮为Show按钮

首先找到你原有列表页面里的Delete按钮代码,把它改成Show按钮,同时要把当前行的唯一标识(比如文章ID)通过URL参数传递给article.php。举两个常见的实现方式:

方式1:用a标签跳转(GET请求)

<!-- 假设你原有列表的每一行是这样的 -->
<tr>
  <td><?php echo $row['title']; ?></td>
  <td><?php echo $row['publish_date']; ?></td>
  <!-- 替换后的SHOW按钮 -->
  <td><a href="article.php?id=<?php echo $row['id']; ?>" class="btn btn-primary">SHOW</a></td>
</tr>

方式2:用表单提交(也可以用GET,或者POST)

如果原有代码是用表单做删除操作的,直接改按钮文本和表单参数就行:

<form action="article.php" method="GET">
  <input type="hidden" name="id" value="<?php echo $row['id']; ?>">
  <button type="submit" class="btn">SHOW</button>
</form>

这里核心是要传递id参数,让article.php知道要展示哪一行的数据。

第二步:编写article.php页面,获取并展示数据

接下来在article.php里,我们需要先接收传递过来的id,从数据库查询对应行的数据,然后用foreach循环遍历展示所有列值。

1. 连接数据库并查询数据(复用你原有代码的数据库连接逻辑)

<?php
// 这里替换成你原有代码的数据库连接代码
$dbHost = 'localhost';
$dbUser = 'your_username';
$dbPass = 'your_password';
$dbName = 'your_database';

$conn = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName);
if (!$conn) {
    die("数据库连接失败: " . mysqli_connect_error());
}

// 获取URL里的id,做安全处理防止SQL注入
$articleId = isset($_GET['id']) ? mysqli_real_escape_string($conn, $_GET['id']) : 0;

// 查询对应行的所有数据
$query = "SELECT * FROM your_table_name WHERE id = $articleId";
$result = mysqli_query($conn, $query);
$articleData = mysqli_fetch_assoc($result);
?>

2. 用foreach循环展示所有列值

拿到$articleData这个关联数组后,就可以用foreach遍历它的所有键值对,自动展示每一列的名称和对应值,不用硬编码每个字段:

<!DOCTYPE html>
<html>
<head>
    <title>Article Details</title>
    <style>
        .detail-item { margin: 10px 0; }
        .detail-label { font-weight: bold; }
    </style>
</head>
<body>
    <h1>Article Details</h1>
    <div class="article-container">
        <?php if ($articleData): ?>
            <?php foreach ($articleData as column => $value): ?>
                <div class="detail-item">
                    <span class="detail-label"><?php echo ucfirst(column); ?>:</span>
                    <?php echo htmlspecialchars($value); ?>
                </div>
            <?php endforeach; ?>
        <?php else: ?>
            <p>找不到对应ID的文章数据</p>
        <?php endif; ?>
    </div>
</body>
</html>

这里几个小细节:

  • ucfirst($column):把列名的首字母大写,让展示更美观
  • htmlspecialchars($value):转义特殊字符,防止XSS攻击,安全起见一定要加
  • 判断$articleData是否存在:避免ID无效时展示空页面
额外的安全优化建议

如果你的原有代码支持,更推荐用预处理语句来查询数据,能更彻底地防止SQL注入:

// 预处理语句写法
$query = "SELECT * FROM your_table_name WHERE id = ?";
$stmt = mysqli_prepare($conn, $query);
mysqli_stmt_bind_param($stmt, "i", $articleId); // "i"表示参数是整数类型
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$articleData = mysqli_fetch_assoc($result);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:34:33