你好,我正在为我的P.H.P编程类项目工作。而我们使用的书是Murach的PHP和MYSQL。对于我们的项目6-1,我们给出的文件夹称为tech_support。我会告诉你我正在做什么的截图。我目前使用phpmyadmin和localhost用于这个项目,因为那是我们使用的服务器。带删除按钮的PHP表格
由于某些原因,当我点击产品经理文件夹中的表的删除按钮时,它将不会删除它只会显示一个空白页。但是现在当我进入product_manager/index.php页面时,它不会显示表格,而是会给我一个错误。
致命错误:不能重新声明get_products()(以前用C宣称:\ XAMPP \ htdocs中\ tech_support \型号\ product_db.php:3)在C:\ XAMPP \ htdocs中\ tech_support \型号\ product_db.php上第7行
当我在Dreamweaver或记事本中查看我正在使用的页面时,第7行显示的所有内容都是一个闭合的大括号。我只是不明白为什么它的说法?我也可以告诉你我的两个代码,我有我的产品经理文件夹中有几页,他们是product_db.php,delete_product.php,add_product.php product_list.php。这些是我正在使用的文件夹。
product_list.php代码
<?php include '../view/header.php'; ?>
<?php require ('../model/product_db.php');?>
<div id="main">
<h1>Product List</h1>
<div id="content">
<!-- display a table of products -->
<h2><?php echo $category_name; ?></h2>
<table>
<tr>
<th>Code</th>
<th>Name</th>
<th>Version</th>
<th>Release Date</th>
<th> </th>
</tr>
<?php foreach ($products as $product) : ?>
<tr>
<td><?php echo $product['productCode']; ?></td>
<td><?php echo $product['name']; ?></td>
<td><?php echo $product['version']; ?></td>
<td><?php echo $product['releaseDate']; ?></td>
<td><form action="." method="post">
<input type="hidden" name="action"
value="delete_product" />
<input type="hidden" name="product_code"
value="<?php echo $product['productCode']; ?>" />
<input type="submit" value="Delete" />
</form></td>
</tr>
<?php endforeach; ?>
</table>
<p><a href="add_product.php">Add Product</a></p>
</div>
</div>
<?php include '../view/footer.php'; ?>
**product_db.php code**
product_db.php
<?php
function get_products() {
global $db;
$query = 'SELECT * FROM products';
$products = $db->query($query);
return $products;
}
function get_product($product_id) {
global $db;
$query = "SELECT * FROM products
WHERE productID = '$product_id'";
$product = $db->query($query);
$product = $product->fetch();
return $product;
}
function delete_product($product_code) {
global $db;
$query = "DELETE FROM products
WHERE productCode = '$product_code'";
$db->exec($query);
}
function add_product($code, $name, $version, $releasedate) {
global $db;
$query = "INSERT INTO products
(code, name, version, releasedate)
VALUES
('$code', '$name', '$version', '$releasedate')";
$db->exec($query);
}
?>
delete_product.php代码
<?php
// Get IDs
$product_id = $_POST['productID'];
// Delete the product from the database
require_once('database.php');
$query = "DELETE FROM products
WHERE productID = '$product_id'";
$db->exec($query);
// display the Product List page
include('product_list.php');
?>
好,所以表格的名称在tech_support phpmyadmin数据库中名为产品。以下是截至目前为止,我一直在盯着并试图弄清楚这段代码,它刚刚开始激怒我。
您是否尝试更改get_product()的名称?有些代码在sql注入时易受攻击 – Sam
对于'get_products()'错误,尝试将它声明为'class'而不是一组''',然后初始化你的类并调用相关的'functions'。 – Killrawr
好的事情是编码的方式来自之前的练习文件,我们在课堂上做了一些编码,而其中一些编码与此类似。所以我所做的就是使用他们的编码,但做了一些编辑工作与tech_support项目,但所有的功能是我们使用或将用于该项目。所以我不确定班级是如何工作的,我们不得不同时拥有get_product()和get_products(),因为老师也有这样的代码。我知道它很混乱>。> – xRayne99x