可以';t从窗体将其他数据保存在数据库中


Can't save other data in database from Form

我试图找到答案,但无济于事。我制作了一个表格,接受产品名称、价格、类别、子类别、详细信息和图像等数据。这些数据将保存在数据库中。当我以无错误的方式保存时,我会检查我的数据库是否已保存,但PRICE和DETAILS没有。我该怎么办?请帮帮我。

以下是PHP 的代码

 <?php 
 session_start();
 if(!isset($_SESSION["manager"])){
     header("location:../storeadmin/admin_login.php");
     exit();
 }
 $managerID = preg_replace('#[^0-9]#i',"",$_SESSION["id"]);
 $manager = preg_replace('#[^A-Za-z0-9]#i',"",$_SESSION["manager"]);
 $password = preg_replace('#[^A-Za-z0-9]#i',"",$_SESSION["password"]);
 include "../storeconnections/connect_to_mysql.php";
 $sql = mysql_query("SELECT * FROM admin WHERE id='$managerID' AND username='$manager' AND password='$password' LIMIT 1");
 $existCount = mysql_num_rows($sql);
 if($existCount == 0){
     echo 'Your login session data is not on record in the database.';
     exit();    
 }
 ?>
 <?php
 //Script Error Reporting
 error_reporting(E_ALL);
 ini_set('display_errors','1')
 ?>
 <?php
  //Delete Item Question to Admin and delete product if they choose
 if(isset($_GET['deleteid'])){
    echo'Do you really want to delete product '.$_GET['deleteid'].'?<a href="inventory_list.php?yesdelete='.$_GET['deleteid'].'">Yes</a> | <a href="inventory_list.php">No</a>';
     exit();    
 }
 if(isset($_GET['yesdelete'])){
 //remove item from system and delete its pic
 //delete from database
 $id_to_delete = $_GET['yesdelete'];
 $sql = mysql_query("DELETE FROM products WHERE id='$id_to_delete' LIMIT 1") or die(mysql_error());
 //unlink from server
 //remove picture
 $pictodelete = ("../inventory_images/$id_to_delete.png");
 if(file_exists($pictodelete)){
     unlink($pictodelete);  
     }
     header("location:inventory_list.php");
     exit();
 }
 ?>
 <?php
 //Parse the form data and add inventory item to the system
 if(isset($_POST['product_name'])){
     $product_name = mysql_real_escape_string($_POST['product_name']);
     $price = mysql_real_escape_string($_POST['price']);
     $category = mysql_real_escape_string($_POST['category']);
     $subcategory = mysql_real_escape_string($_POST['subcategory']);
     $details = mysql_real_escape_string($_POST['details']);
     $sql = mysql_query("SELECT id FROM products WHERE product_name='$product_name' LIMIT 1");
     $productMatch = mysql_num_rows($sql);
     if($productMatch > 0){
         echo 'Sorry you tried to place a duplicate "Product Name" into the system, <a href="inventory_list.php">Click here.</a>';
         exit();
      }
         $sql = mysql_query("INSERT INTO products(product_name, price, details, category, subcategory, date_added)
    VALUES('$product_name','$price','$details','$category','$subcategory',now())") or die(mysql_error());
         $pid = mysql_insert_id();
         $newname = "$pid.png";
         move_uploaded_file($_FILES['fileField']['tmp_name'],"../inventory_images/$newname");
         header("location:inventory_list.php");
         exit();
 }
 ?>
 <?php
 //This block grabs the whole list for viewing
 $product_list = "";
 $sql = mysql_query("SELECT * FROM products ORDER BY date_added DESC");
 $productCount = mysql_num_rows($sql);
 if($productCount > 0){
     while($row = mysql_fetch_array($sql)){
         $id = $row['id'];
         $product_name = $row['product_name'];
         $price = $row['price'];
         $date_added = strftime("%b %d, %Y", strtotime($row['date_added']));
         $product_list .= "#$id | <strong> $product_name</strong> | Php.$price | <em>Added : $date_added</em> &nbsp;&nbsp;&nbsp;<a href='inventory_edit.php?pid=$id'>edit</a>&bull; <a href='inventory_list.php?deleteid=$id'>delete</a> <br>";
     }
  }else{
     $product_list = "You have no product listed in your store yet";
     }
 ?>

以下是HTML 中Javasccript的代码

 <script type="text/javascript" language="javascript">
 function validateForm(){
     var isValid = true;
      if(document.myForm.product_name.value == ""){
         alert("Please speify product name.");
         isValid = false;
     }else if(document.myForm.textfield.value == ""){
         alert("Please specify price.");
         isValid = false;
     }else if(document.myForm.category.value == ""){
         alert("Please specify category.");
         isValid = false;
     }else if(document.myForm.subcategory.value == ""){
         alert("Please specify subcategory.");
         isValid = false;
     }else if(document.myForm.textarea.value == ""){
         alert("Please specify product details.");
         isValid = false;
     }else if(document.myForm.fileField.value == ""){
         alert("Please specify product image.");
         isValid = false;
     }
         return isValid;
 }
 </script>

这是HTML 中FORM的代码

 <a name="inventoryForm" id="inventoryForm"></a>
      <h3>
      Add New Item Form
      </h3>
      <form onSubmit="return validateForm()" action="inventory_list.php" enctype="multipart/form-data" name="myForm" id="myForm" method="post">
      <table width="90%" border="0" cellspacing="0" cellpadding="6">
      <tr>
      <td align="right" width="35%">Product Name</td>
      <td width="65%"><label>
      <input name="product_name" type="text" id="product_name" size="64"/>
      </label></td>
      </tr>
      <tr>
      <td align="right">Product Price</td>
      <td><label>
      Php.
      <input name="textfield" type="text" id="textfield" size="12"/>
      </label></td>
      </tr>
      <tr>
      <td align="right">Category</td>
      <td>
      <select name="category" id="category">
      <option value=""></option>
      <option value="Shirts">Shirts</option>
      <option value="Tote Bags">Tote Bags</option>
      <option value="Mugs">Mugs</option>
      <option value="Pillow Case">Pillow Case</option>
      </select></td>
      </tr>
      <tr>
      <td align="right">Subcategory</td>
      <td><select name="subcategory" id="subcategory">
      <option value=""></option>
      <option value="Silk Screen">Silk Screen</option>
      <option value="Sublimation Print">Sublimation Print</option>
      <option value="Vinyl Heat Transfer">Vinyl Heat Transfer</option>
      <option value="Water slide">Water Slide</option>
      <option value="Dark Color Heat Transfer">Dark Color Heat Transfer</option>
      <option value="Light Color Heat Transfer">Dark Color Heat Transfer</option>
      </select></td>
      </tr>
      <tr>
      <td align="right">Product Details</td>
      <td><label>
      <textarea name="textarea" id="textarea" cols="64" rows="5"></textarea>
      </label></td>
      </tr>
      <tr>
      <td align="right">Product Image</td>
      <td><label>
      <input type="file" name="fileField" id="fileField"/>
      </label></td>
      </tr>
      <tr>
      <td>&nbsp;</td>
      <td><label>
      <input type="submit" name="button" id="button" value="Add Item"/>
      </label></td>
      </tr>
      </table>
      </form>
      <br>
      <br>
      <br>
 </div>

您将输入字段命名为textareatextfield:

<input name="textfield" type="text" id="textfield" size="12"/>
<textarea name="textarea" id="textarea" cols="64" rows="5"></textarea>

但您试图从pricedetails:获取发布的数据

$price = mysql_real_escape_string($_POST['price']);
$details = mysql_real_escape_string($_POST['details']);

请确保输入字段的名称具有描述性且准确,并确保它们在客户端和服务器之间保持一致。


此外,不要为输入字段使用保留的元素名称。在这种情况下,button是现有的保留html元素的名称。submit也不能用作元素的名称。

<input type="submit" name="button" id="button" value="Add Item"/>