2016-12-08 15 views
-1

私のPHPは私の製品テーブルを更新しません。 IDを表示するにはechoを使ってテストしたので、私のGETリクエストがうまく動作しています。私はそれをどのように働かせることができるのか混乱していますか?私はそれがフォームのアクション=私のフォームとは何かであるかもしれないと思うが、私は混乱している!誰かが助けてくれますか?MySQLのPHPアップデートテーブルが動作しない

<?php 
// Connection file 
require 'db.php'; 

if (((!empty($_GET["mode"])) && (!empty($_GET["id"]))) && ($_GET["mode"] == "update")) { 
    // If update 
    echo $_GET['id']; 
    if (isset($_POST["updateSubmit"])) { 
     $pName = $_POST["updateProductName"]; 
     echo $pName; 

     $query = "UPDATE products " 
       . "SET p_name = '" . $_POST["updateProductName"] . "', " 
       . "p_type = '" . $_POST["updateProductType"] . "', " 
       . "p_desc = '" . $_POST["updateProductDesc"] . "', " 
       . "p_price = '" . $_POST["updateProductPrice"] . "', " 
       . "p_stock = " . $_POST["updateProductStock"] . ", " 
       . "WHERE id=" . $_GET['id'] . ";"; 
     $result = mysqli_query($conn, $query); 
    } 
} 
?> 


<div> 
    <form id="updateForm" name="updateForm" action="<?php echo "?mode=update&id=" . $productDetails["id"]; ?>" method="post"> 
     <label>Product name:</label><br> 
       <input type="text" name="updateProductName"><br> 
     <label>Product type</label><br> 
       <select name="updateProductType"> 
        <option value="Jackets/coats">Jackets/coats</option> 
        <option value="Accessories">Accessories</option> 
        <option value="Shirts">Shirts</option> 
        <option value="Jeans">Jeans</option> 
        <option value="Trousers">Trousers</option> 
        <option value="Shoes">Shoes</option> 
        <option value="Suits">Suits</option> 
       </select> 
      <p>Product description:</p> 
       <textarea name="updateProductDesc" rows="10" cols="30"></textarea><br> 
     <label>Product price:</label><br> 
      <input type="text" name="updateProductPrice"><br> 
     <label>Stock level:</label><br> 
      <input type="text" name="updateProductStock"><br> 
      <input type="submit" name="updateSubmit" value="Submit"> 
    </form> 
</div> 
<?php 


?> 

+0

あなたは 'mysqli_errorを(使用している場合、すべての' $ _POST'が – Boby

+1

@Bobyを変更してみてください$ conn) 'を実行すると、'の最後に '、'を削除する必要があることがわかります。 "p_stock =" $ _POST ["updateProductStock"]。 "、"、あなたの前にカンマを入れないでください。 – Sean

+4

値では動作しませんあなたの方法 'メソッド= "GET"' – Sean

答えて

0

私はタイプが、あなたがそうp_priceで使用されるよう'使用する必要がある文字列の場合の問題は、1つまたはこれらの行

. "p_price = '" . $_POST["updateProductPrice"] . "', " 
. "p_stock = " . $_POST["updateProductStock"] . ", " 

の両方に'を悪用していると思いますfloatまたはintの場合は、p_stockの場合と同じように'を使用しないでください。

この2つのフィールドに間違って使用されたようです。 p_priceはfloatであり、p_stockはstringであるためです。

. "p_price = " . $_POST["updateProductPrice"] . ", " 
. "p_stock = '" . $_POST["updateProductStock"] . "' , " 
0

あなたのクエリには2つの問題...

は、あなたがどこのセクションとp_stockであなたの行方不明の区切り文字の前に1つの余分なコンマを持っています。

であるべき: "p_stock = '" . $_POST["updateProductStock"] . "' ". "WHERE id='" . $_GET['id'] . "'";

関連する問題