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

基于ID跳转详情页出现404错误的技术求助

问题解决步骤

1. 修复URL格式错误(404的直接原因)

你生成的URL用&作为第一个查询参数的分隔符,这是错误的。URL规则中第一个查询参数必须以?开头,&仅用于连接后续的多个参数。

修改前端<a>标签的href属性:

<a href="./pages/detail.php?id=<?php echo $row["id"] ?>"  class="home-card">

修改后生成的URL会是/pages/detail.php?id=2,可以正常访问详情页。

2. 修复详情页SQL预处理语法错误

你的detail.php代码混用了PDO与mysqli的语法:使用mysqli的bind_param()方法,但SQL语句里用了PDO的命名占位符:id,这会导致预处理执行失败。

修正后的detail.php后端代码:

if(isset($_GET["id"])) {
    $id = $_GET["id"];

    // 将SQL中的:id替换为mysqli要求的?占位符
    $stmt = $conn->prepare("SELECT m.id,m.artist, m.title, m.label, m.image, m.vocal, m.audio, m.created_at, g.name AS genre
                       FROM music m LEFT JOIN genre g
                       ON m.genre_id = g.id
                       WHERE m.id = ?");
                       
    $stmt->bind_param("i", $id);
    $stmt->execute();
    // 补充获取查询结果的代码,用于前端渲染
    $result = $stmt->get_result();
    $music_detail = $result->fetch_assoc();
}

// Html code to display detail

补充说明:如果后续需要添加多个查询参数,格式应为detail.php?id=2&param=xxx,此时才用&连接第二个及以后的参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:10:40