欢迎光临
我们一直在努力

html显示mysql数据库数据

环境准备

确保已安装以下组件:

CREATE DATABASE test_db;
USE test_db;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(50)
);
INSERT INTO users (name, email) VALUES
('张三', 'zhangsan@example.com'),
('李四', 'lisi@example.com');

PHP连接数据库并查询数据

<?php
$host = 'localhost';
$user = 'root';
$password = '密码';
$db = 'test_db';
// 创建PDO连接
$conn = new PDO("mysql:host=$host;dbname=$db", $user, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 执行SQL查询
$stmt = $conn->query('SELECT  FROM users');
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>

HTML显示数据

将数据渲染为HTML表格

<!DOCTYPE html>
<html>
<head>数据库数据展示</title>
    <style>
        table { width: 50%; border-collapse: collapse; }
        th, td { border: 1px solid #ccc; padding: 8px; text-align: left; }
        th { background-color: #f4f4f4; }
    </style>
</head>
<body>
    <h2>用户列表</h2>
    <table>
        <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>邮箱</th>
        </tr>
        <!-循环输出数据 -->
        <?php foreach ($data as $row): ?>
        <tr>
            <td><?= htmlspecialchars($row['id']) ?></td>
            <td><?= htmlspecialchars($row['name']) ?></td>
            <td><?= htmlspecialchars($row['email']) ?></td>
        </tr>
        <?php endforeach; ?>
    </table>
</body>
</html>

分页功能实现(可选)

添加分页逻辑

<?php
// 每页显示条数
$limit = 5;
// 获取当前页码(默认为1)
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
// 计算偏移量
$offset = ($page 1)  $limit;
// 分页查询
$stmt = $conn->prepare('SELECT  FROM users LIMIT :limit OFFSET :offset');
$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 获取总记录数
$total = $conn->query('SELECT COUNT() FROM users')->fetchColumn();
$totalPages = ceil($total / $limit);
?>

添加分页导航链接

<div>
    <?php if ($page > 1): ?>
    <a href="?page=<?= $page-1 ?>">上一页</a>
    <?php endif; ?>
    <!-显示页码范围 -->
    <?php for ($i=1; $i<=$totalPages; $i++): ?>
        <?php if ($i === $page): ?>
            <strong><?= $i ?></strong>
        <?php else: ?>
            <a href="?page=<?= $i ?>"><?= $i ?></a>
        <?php endif; ?>
    <?php endfor; ?>
    <?php if ($page < $totalPages): ?>
    <a href="?page=<?= $page+1 ?>">下一页</a>
    <?php endif; ?>
</div>

样式美化(可选)

使用Bootstrap框架快速美化表格:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
<table class="table table-striped table-hover">...</table>

相关问题与解答

问题1:如何选择PDO或mysqli?

解答

html显示mysql数据库数据

  • PDO:支持多种数据库(如MySQL、PostgreSQL、SQLite),语法统一,推荐新项目使用。
  • mysqli:仅支持MySQL,性能略优,适合仅需操作MySQL的场景。

问题2:为什么查询结果需要htmlspecialchars处理?

解答
防止XSS攻击,若数据库中存储了<script>alert('hack')</script>,直接输出会执行JS代码,而htmlspecialchars会将其转义为`<script&gt

未经允许不得转载:九八云安全 » html显示mysql数据库数据