Correction status:qualified
Teacher's comments:希望你真的理解了业务逻辑和代码的执行流程
总结
总结
1、通过数组赋值及GET请求实现了简单的网站三级结构(首页-列表页-详情页)
2、通过GET请求方式请求数据=以后学习数据库的ID调用方式
1、首页
<?php // 加载公共头部 include __DIR__ . "/inc/header.php"; // 使用双重循环来遍历二个数组 // 外层遍历栏目数组$cates, 内层根据栏目id来查询对应的影视剧信息 foreach ($cates as $cate) { echo "<h2>{$cate['alias']}</h2>"; echo '<ol>'; // 遍历影视剧数组 foreach ($movies as $movie) { // 判断当前影视剧所属栏目是否与当前栏目id相同? if ($cate['cate_id'] === $movie['cate_id']) { echo "<li><a href='detail.php?mov_id=" .$movie['mov_id']. "'>{$movie['name']}</a></li>"; } } echo '</ol>'; } // 加载公共底部 include __DIR__ . '/inc/footer.php';
点击 "运行实例" 按钮查看在线实例
2、列表页
<?php // 加载公共头部 include __DIR__ . '/inc/header.php'; // 将当前栏目id,, 使用GET方式,通过URL地址传递到列表模板list.php $cate_id = $_GET['cate_id']; // 注意: url中的内容都是字符串, 整数字符串先做类型转换才可以 //echo gettype($cate_id);die; $cate_id = intval($cate_id); // 函数转换 // 将index.php中的主体代码简单修改一下 // 只显示一个栏目, 不需要做循环, 只需要作一个判断即可 foreach ($cates as $cate) { // 在index.php基础上加一层判断,确定是否是当前栏目即可 // 如果上面的GET参数没有做类型转换, 那么这里就不能用===恒等 // 必须使用==, 以触发系统的类型自动转换机掉, 我还是建议全等操作 // == : 只比较值是否相等, ===: 值与类型,都必须完全相同 if ($cate['cate_id'] === $cate_id) { echo "<h2>{$cate['alias']}</h2>"; echo '<ol>'; foreach ($movies as $movie) { if ($cate['cate_id'] == $movie['cate_id']) { echo "<li><a href='detail.php?mov_id=" .$movie['mov_id']. "'>{$movie['name']}</a></li>"; } } echo '</ol>'; break; // 结束循环 }; } // 加载公共底部 include __DIR__ . '/inc/footer.php';
点击 "运行实例" 按钮查看在线实例
3、详情页
// 加载公共头部 include __DIR__ . '/inc/header.php'; $mov_id = intval($_GET['mov_id']); // 复制list.php模板直接修改 foreach ($movies as $movie) { if ($movie['mov_id'] === $mov_id) { echo "<h3>{$movie['name']}</h3>"; echo '<img src="static/images/' . $movie['image'] . '" alt="" width="300">'; echo "<p style='text-indent: 2em'>{$movie['detail']}</p>"; } }; // 加载公共底部 include __DIR__ . '/inc/footer.php';
点击 "运行实例" 按钮查看在线实例