2017-03-13 3 views
0

Also arbeite ich an diesem Projekt für die Schule mit PHP und SQL, wo Daten aus einer Tabelle angezeigt werden Ich sende Daten aus einem Formular und die Zeile mit den Daten mit dem, was in das Formular eingegeben wird, aktualisieren soll Problem ist, dass das Programm den ganzen Weg läuft und mich keine Fehler wirft, aber auch die Daten nicht aktualisiert. Ich frage mich, ob jemand erklären könnte, warum es keine Fehler wirft. Ist es ein Problem mit der Frage, die ich gestellt habe oder ist es mehr als nur das?Was könnte dazu führen, dass dieser php durchläuft, aber keine Fehler wirft?

Darunter füge ich den Code ein. Ich schätze jeden Einblick, was schief gehen könnte dank

edit_product_form.php

<?php 
    require('database.php'); 
    $product_id = filter_input(INPUT_POST, 'product_id', FILTER_VALIDATE_INT); 
    $category_id = filter_input(INPUT_POST, 'category_id', FILTER_VALIDATE_INT); 


    $query = 'SELECT * 
      FROM products 
      WHERE productID = :product_id'; 

    $statement = $db->prepare($query); 
    $statement->bindValue(':product_id',$product_id); 
    $statement->execute(); 
    $products = $statement->fetchAll(); 
    $statement->closeCursor(); 
?> 




    <form action="edit_product.php" method="post" 
      id="add_product_form"> <!--NOTE: this ID is called this for CSS purpose--> 

     <!--NOTE: All These foreach statements display the selected product information in the value--> 
     <label>Category:</label> 
     <input type="text" name="category_id" 
     <?php foreach ($products as $product) :?> 
      value="<?php echo $product['categoryID'];?>" 
     <?php endforeach;?>><br> 

     <label>Code:</label> 
     <input type="text" name="code" 
     <?php foreach ($products as $product) :?> 
      value="<?php echo $product['productCode'];?>" 
     <?php endforeach;?>><br> 

     <label>Name:</label> 
     <input type="text" name="name" 
     <?php foreach ($products as $product) :?> 
      value="<?php echo $product['productName'];?>" 
     <?php endforeach;?>><br> 

     <label>List Price:</label> 
     <input type="text" name="price" 
     <?php foreach ($products as $product) :?> 
      value="<?php echo $product['listPrice'];?>" 
     <?php endforeach;?>><br> 

     <label>&nbsp;</label> 
     <input type="submit" value="Save Changes"><br> 
    </form> 

edit_product.php

<?php 
// Get the product data 
$product_id = filter_input(INPUT_POST, 'product_id', FILTER_VALIDATE_INT); 
$category_id = filter_input(INPUT_POST, 'category_id', FILTER_VALIDATE_INT); 
$code = filter_input(INPUT_POST, 'code'); 
$name = filter_input(INPUT_POST, 'name'); 
$price = filter_input(INPUT_POST, 'price', FILTER_VALIDATE_FLOAT); 

// Validate inputs 
if ($category_id == null || $category_id == false || 
    $code == null || $name == null || $price == null || $price == false) { 
// $error = "Invalid product data. Check all fields and try again."; 
include('error.php'); 

} else { 
require_once('database.php'); 

$query ='UPDATE products 
     SET categoryID = :category_id, 
      productCode = :code, 
      productName = :name, 
      listPrice = :price 
     WHERE productID = :product_id'; 

$statement = $db->prepare($query); 
$statement->bindValue(':product_id', $product_id); 
$statement->bindValue(':category_id', $category_id); 
$statement->bindValue(':code', $code); 
$statement->bindValue(':name', $name); 
$statement->bindValue(':price', $price); 
$statement->execute(); 
$statement->closeCursor(); 

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

während PHP standardmäßig Fehler an Sie spuckt, müssen Sie für die db fragen – nogad

+0

Was ist INPUT_POST ?? – Kaylined

Antwort

-3

Sie einen Fehler überprüfen sollten, nachdem Sie die Abfrage ausführen Sie können es mit sqlsrv_errors() versuchen. Sie können mehr darüber auf this link überprüfen.

Verwandte Themen