2013-11-24 2 views
0

Так что проблема, с которой я столкнулась, связана с этим базовым упражнением приложения базы данных, которое я делаю из книги. В основном, когда вы пытаетесь добавить продукт в базу данных, как показывает приведенный ниже код, он проверяет, чтобы все поля были заполнены. Но затем, в конце, когда выполняется запрос, и у меня есть include ('home.php'), что-то происходит, когда я возвращаюсь на домашнюю страницу home.php и нажимаю одну из ссылок на этой странице , Я получаю ошибку, которую я получил бы, если одно из полей останется пустым. Есть идеи?Включить функцию php, дающую ошибку из старого кода?

<?php 
// Get the product data 
$category_id = $_POST['category_id']; 
$code = $_POST['code']; 
$name = $_POST['name']; 
$price = $_POST['price']; 

// Validate inputs 
if (empty($code) || empty($name) || empty($price)) { 
    $error = "Invalid product data. Check all fields and try again."; 
    include('error.php'); 
} else { 
    // If valid, add the product to the database 
    require_once('database.php'); 
    $query = "INSERT INTO products 
       (categoryID, productCode, productName, listPrice) 
       VALUES 
       ('$category_id', '$code', '$name', '$price')"; 
    $db->exec($query); 

    // Display the Product List page 
    include('home.php') ; 
} 
?> 

home.php без HTML/CSS

<?php 
require_once('database.php'); 

    // Get category ID 
    if(!isset($category_id)) { 
     $category_id = $_GET['category_id']; 
     if (!isset($category_id)) { 
      $category_id = 1; 
     } 
    } 

    // Get name for current category 
    $query = "SELECT * FROM categories WHERE categoryID = $category_id"; 
    $category = $db->query($query); 
    $category = $category->fetch(); 
    $category_name = $category['categoryName']; 


    // Get all categories 
    $query = "SELECT * FROM categories ORDER BY categoryID"; 
    $categories = $db->query($query); 

    // Get products for selected category 
    $query = "SELECT * FROM products 
       WHERE categoryID = $category_id 
       ORDER BY productID"; 
    $products = $db->query($query); 


?> 

ответ

1

В файле home.php, вы используете $_GET вместо $_POST:

Изменить это:

$category_id = $_GET['category_id']; 

До:

$category_id = $_POST['category_id']; 
Смежные вопросы