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

如何实现点击链接从数据库展示对应分类产品数据?

解决分类跳转展示对应数据库内容的问题

嘿,我明白你期末项目的需求——点击不同硬件分类链接,在新页面只展示对应类别的产品。之前用POST按钮的思路其实绕远路了,这种场景用GET请求更合适,既简单又符合网页跳转的语义,下面给你一步步的解决方案:

第一步:修改分类链接(parts.php)

把原来的表单POST改成带分类参数的<a>标签,这样点击链接时直接把分类信息通过URL传递给display.php:

<!-- parts.php 里的分类区域代码 -->
<div class="partbox">
  <a href="display.php?category=处理器">处理器</a>
</div>
<div class="partbox">
  <a href="display.php?category=主板">主板</a>
</div>
<div class="partbox">
  <a href="display.php?category=显卡">显卡</a>
</div>

这样用户点击链接后,URL会变成display.php?category=处理器,一目了然,还能收藏这个页面。

第二步:处理分类展示(display.php)

在display.php里,我们需要接收URL里的分类参数,验证它的合法性,再从数据库查询对应数据并展示。这里用预处理语句防止SQL注入,同时加白名单验证避免非法参数:

<?php
// 1. 连接数据库(替换成你的数据库账号密码)
$db_host = "localhost";
$db_user = "你的用户名";
$db_pass = "你的密码";
$db_name = "你的数据库名";

$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!$conn) {
  die("数据库连接失败: " . mysqli_connect_error());
}

// 2. 获取并验证分类参数
$selected_category = $_GET['category'] ?? '';
// 定义允许的分类白名单,防止非法参数
$allowed_cats = ['处理器', '主板', '显卡'];

if (!in_array($selected_category, $allowed_cats)) {
  echo "<p>抱歉,没有这个分类哦!</p>";
  exit;
}

// 3. 安全查询对应分类的产品(假设你的产品表叫products,分类字段是category)
$stmt = mysqli_prepare($conn, "SELECT * FROM products WHERE category = ?");
mysqli_stmt_bind_param($stmt, "s", $selected_category);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);

// 4. 渲染产品列表
echo "<h2>$selected_category 产品列表</h2>";
if (mysqli_num_rows($result) > 0) {
  echo "<div class='product-list'>";
  while ($product = mysqli_fetch_assoc($result)) {
    // 这里根据你的表结构展示产品信息,比如名称、价格、图片等
    echo "<div class='product-item'>";
    echo "<h3>" . htmlspecialchars($product['name']) . "</h3>";
    echo "<p>价格: " . htmlspecialchars($product['price']) . " 元</p>";
    echo "</div>";
  }
  echo "</div>";
} else {
  echo "<p>当前分类暂无产品~</p>";
}

// 清理资源
mysqli_stmt_close($stmt);
mysqli_close($conn);
?>

为什么不用POST?

POST请求更适合提交数据(比如用户注册、提交订单),而分类筛选属于获取数据的场景,GET请求的优势很明显:

  • URL可见参数,用户可以收藏或分享特定分类的页面
  • 符合HTTP语义,搜索引擎也能更好地抓取这些分类页面
  • 代码比表单POST更简洁,不需要额外的表单和提交按钮

如果坚持要用POST的话,也可以把每个分类做成独立的表单提交按钮,但真的没必要,GET是更优的选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:20:25