你好,我正在爲我的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