gpt4 book ai didi

PHP 页面无法正确呈现

转载 作者:行者123 更新时间:2023-11-29 07:07:03 26 4
gpt4 key购买 nike

我有一个正在构建的 PHP 站点,但我似乎遇到了一些呈现问题。我将网站分成多个部分,例如 Header.php、sidebar.php 和 footer.php。我的所有类别在边栏中呈现都没有问题,但是当我尝试呈现所选类别的产品时,页面没有呈现完整的页面。

我有一个包含类别和产品的简单数据库。下面是我的 connect_db.php、categories_db.php 和 products_db.php 文件的代码,它们处理所有数据库内容。

注意:如果我只显示所有产品,我可以让我的 product_list.php 呈现,但我需要呈现边栏中所选类别的产品。

下面是我的index.php或者主视图

 <?php
error_reporting(-1);
ini_set('display_errors', 1);

require('models/connect_db.php');
require('models/categories_db.php');
require('models/products_db.php');

$categories = get_categories();

if (!isset($category_id)) {
$category_id = 1;
}
else {
$category_id = $_GET['category_id'];
}
// get all products by category
$products = get_products_by_category($category_id);

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<?php include('views/layout/head.php');?>
</head>
<body>
<!-- Wrapper -->
<div class="wrapper">
<!-- Header -->
<?php include('views/layout/header.php');?>

<!-- Main -->
<div id="main">
<div class="cl">&nbsp;</div>

<!-- Content -->
<div id="content">
<?php include('views/product_list.php');?>
</div>
<!-- End Content -->

<!-- Sidebar -->
<?php include('views/layout/sidebar.php');?>
</div>
<!-- End Main -->

<!-- Footer -->
<?php include('views/layout/footer.php');?>
</div>
<!-- End Wrapper -->
</body>
</html>

现在侧边栏可以正确呈现类别,但是当我单击类别时,它不会像预期的那样呈现 product_list.php。

我的侧边栏正确加载了所有类别,代码如下。

 <?php
$categories;
$categories = get_categories();

$category_id = $_GET['category_id'];
if (!isset($category_id)) {
$category_id = 1;
}
?>
<div id="sidebar">

<!-- Categories -->

<div class="box categories">
<h2>Categories </h2>
<div class="box-content">
<ul>
<!-- get category menu items -->
<?php foreach($categories as $category) : ?>
<li><a href="?category_id=<?php echo $category['category_id'];?>">
<?php echo $category['name'];?>
</a>
</li>
<?php endforeach; ?>
</ul>
</div>
</div>

<!-- End Categories -->

</div>
<!-- End Sidebar -->

<div class="cl">&nbsp;</div>

现在是不会呈现的 product_list.php 文件。

<?php

// get all products by category
$products = get_products_by_category($category_id);

// get category name
$category_name = get_category_name($category_id);

?>

<!-- Products -->
<div class="products">
<div class="cl">&nbsp;</div>
<ul>
<?php foreach($products as $product) : ?>
<li>
<a href="#"><img src="css/images/big1.jpg" alt="" /></a>
<div class="product-info">
<h3><?php echo $product['name'];?></h3>

<div class="product-desc">
<h4><?php echo $category_name;?></h4>
<p><?php echo $product['description'];?></p>
<strong class="price"><?php echo $product['price'];?></strong>
</div>
</div>
</li>
<?php endforeach; ?>
</ul>
<div class="cl">&nbsp;</div>
</div>
<!-- End Products -->

我不确定是因为 $category_id 没有设置还是什么,请有人帮我解决这个问题。

错误:

注意: undefined variable :/var/www/WidgetCorp/views/product_list.php 第 4 行中的 category_id

注意: undefined variable :/var/www/WidgetCorp/views/product_list.php 第 7 行中的 category_id

fatal error :在/var/www/WidgetCorp/models/categories_db.php 第 22 行调用未定义的方法 PDO::fetch()

最佳答案

我认为问题在于您在 product_list.php 文件之后包含了 sidebar.php 文件。 Product_list.php 引用了 $category_id,但是直到 sidebar.php 文件才包含 $category_id。所以你试图将一个 undefined variable 传递给你的各种函数,它产生了一个错误。

此问题的部分原因是您错误地编码了资源。尝试将所有代码放在模板文件的顶部(获取所需数据的东西),以便将其与演示代码分开。

引用您的评论,代码的顺序需要翻转成这样:

<?php
/* sidebar.php */
$categories;
$categories = get_categories();

$category_id = $_GET['category_id'];
if (!isset($category_id)) {
$category_id = 1;
}
/* product_list.php */
// get all products by category
$products = get_products_by_category($category_id);

// get category name
$category_name = get_category_name($category_id);

关于PHP 页面无法正确呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6725239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com