使用PHP更新mysqli数据库中的产品

时间:2014-04-12 15:00:23

标签: php ajax mysqli

尝试使用php一次更新1行。

我想让用户更新他们已添加到数据库的产品,我有一个简单的表格及相关字段:

 <fieldset><legend><span> Update a product in the database! </span></legend>

        <form  id ="productsform" method="post" onsubmit="return false;" enctype="multipart/form-data">


        <label> Product name:               <input  type="text"     id="name"           name="name"/>           </label>

        <label> Product quantity:           <input  type="number"   id="quantity"       name="quantity"/>       </label>

        <label> Product description:        <input  type="text"     id="description"    name="description"/>    </label>

        <label> Product price:              <input  type="text"     id="price"          name="price"/>          </label>

        </br>

        <input id="submit" name="submit" type="button" class="reg" value="Update Product">

        <div id="update"></div>

            </form>

我正在使用根据控制台正常工作的ajax,但我正在努力与更新行的php方面:

<?php

include("dbase/config_database.php");

$id = $_POST["id"];
$name = $_POST['name'];
$quantity = $_POST['quantity'];
$description = $_POST['description'];
$price = $_POST['price'];

$query = "UPDATE products SET name = '{$name}', quantity = '{$quantity}', description = '{$description}', price = '{$price}' 
WHERE id = {$id}";

mysqli_query($mysqli, $query);

?>

以下是我用于将产品添加到数据库的初始文件:

<?php
include("dbase/config_database.php");

//Stores all information passed through AJAX into the query
$name = $_POST['name'];
$quantity = $_POST['quantity'];
$description = $_POST['description'];
$price = $_POST['price'];


//Adds information to database
$query = "INSERT INTO products (name, quantity, description, price) VALUES ('$name','$quantity','$description','$price')";
//Runs the query
$result = $mysqli->query($query) OR die("Failed query $query");
echo $mysqli->error."<p>";

echo "Product Added";

$querynew = ("SELECT id as 'collectid' from products WHERE name = '$name'and quantity = '$quantity'and description ='$description'and price = '$price'");
$resultnew = $mysqli->query($querynew) OR die("Failed query $querynew");

while($info = mysqli_fetch_array( $resultnew)){
    $productid = $info['collectid'];
}

$image = $_FILES['file1']['name'];
$type = $_FILES['file1']['type'];
$size = $_FILES['file1']['size'];
$tmp_name = $_FILES['file1']['tmp_name'];

$imgpath = "images/".$productid.".jpg";

// Run the move_uploaded_file() function here
$moveResult = move_uploaded_file($tmp_name, $imgpath);
// Evaluate the value returned from the function if needed

$querytwo = ("SELECT * FROM products WHERE name = '$name' and quantity = '$quantity' and description = '$description' and price = '$price'");
$resulttwo = $mysqli ->query($querytwo) OR die ("Failed query $querynew");

$info = array();
while($row = mysqli_fetch_assoc($resulttwo)){
    $product = array("id" => $row ['id'],
        "name" => $row ['name'],
        "quantity" => $row ['quantity'],
        "description" => $row ['description'],
        "price" => $row ['price'],

);

    array_push($info,$product);
}

$json_output = json_encode($info);
echo $json_output;
?>

非常感谢任何帮助!我已经弄乱了更新php,因为我确定问题在那里,但无法找到它。

1 个答案:

答案 0 :(得分:0)

您没有从表单中获取$_POST["id"],因为没有名为id的输入元素。

当您从表格中获取所有数据后,将id作为隐藏字段放入表单中

喜欢

<input type="hidden" name="id" value="<?=$row['id']?>">

然后在提交表单后,您将获得id

中的$_POST['id']

总是尝试彻底调试您的代码尝试打印查询然后您可以轻松地知道实际发生了什么。最好的