php - 尝试在 php 中更新 mysql 数据库表单

标签 php mysql

当我从上一页导航时,我的数据库设法检索值。 当我单击“更新产品”按钮时,会出现

更新产品

行。我想要的是,当我单击“更新产品”按钮并事先修改了记录时,我希望也使用这些值更新数据库,并显示一条确认消息来确认这一点。

代码:

<form id="updateForm" name="updateForm" action="<?php echo "?mode=update&ID=" . $productDetails["ID"]; ?>" method="post">                                
                    <div>
                        <label for="updateFormProductCostPrice">ID</label>
                        <input id="updateFormProductCostPrice" name="ID" type="text" readonly 
                               value="<?php echo $productDetails["ID"]; ?>">
                    </div>
                    <div>
                        <label for="updateFormProductName">Film Name</label>
                        <input id="updateFormProductName" name="FilmName" type="text" 
                                value="<?php echo $productDetails["FilmName"]; ?>">
                    </div>
                    <div>
                        <label for="updateFormProductDescription">Producer</label>
                        <input id="Producer" name="productDescription" type="text" 
                                value="<?php echo $productDetails["Producer"]; ?>">                
                    </div>
                    <div>
                        <label for="updateFormProductPrice">Year Published</label>
                        <input id="updateFormProductPrice" name="YearPublished" type="text" 
                               value="<?php echo $productDetails["YearPublished"]; ?>">
                    </div>
                    <div>
                        <label for="updateFormProductStock">Stock:</label>
                        <input id="updateFormProductStock" name="Stock" type="text" 
                               value="<?php echo $productDetails["Stock"]; ?>">
                    </div>
                    <div>
                        <label for="updateFormProductEan">Price:(&#163)</label>
                        <input id="updateFormProductEan" name="Price" type="text" 
                               value="<?php echo $productDetails["Price"]; ?>">
                    </div>
                    <div>
                        <input id="updateSubmit" name="updateSubmit" value="Update product" type="submit">
                    </div>
                </form>

PHP:

if (((!empty($_GET["mode"])) && (!empty($_GET["ID"]))) && ($_GET["mode"] == "update")) {
               echo "<h1>Update product</h1>";
                if (isset($_POST["updateSubmit"])) {
                    if ((!empty($_POST["ID"])) && (!empty($_POST["FilmName"])) 
                            && (!empty($_POST["Producer"])) && (!empty($_POST["YearPublished"])) 
                            && (!empty($_POST["Stock"])) && (!empty($_POST["Price"]))) {
                        $query = "UPDATE ProductManagement "
                                . "SET FilmName = '" . $_POST["FilmName"] . "', "
                                . "Producer = '" . $_POST["Producer"] . "', "
                                . "YearPublished = '" . $_POST["YearPublished"] . "', "
                                . "Stock = " . $_POST["Stock"] . ", "
                                . "Price = '" . $_POST["Price"] . "' "
                                . "WHERE ID=" . $_GET['ID'] . ";";
                        $result = mysqli_query($connection, $query);

                        if ($result == false) {
                            echo "<p>Updating failed.</p>";
                        } else{
                            echo "<p>Updated</p>";
                                }
                                                                                        }
                                                    }
        }

所以我需要数据库更新我输入的新值,一旦按下“更新产品”按钮,原始值就会出现,并且该值不会在数据库中更新。为什么是这样?我没有收到任何错误消息。谢谢

最佳答案

错误是您没有发布 ID,而是获取了 ID 值。具有 readonly 属性的输入框不会发布值。

更改:

if ((!empty($_POST["ID"])) && (!empty($_POST["FilmName"])) 

至:

if ((!empty($_GET["ID"])) && (!empty($_POST["FilmName"])) 

编辑:为实现此目的而进行的总更改:

HTML:

<form id="updateForm" name="updateForm" action="<?php echo "?mode=update&ID=" . $productDetails["ID"]; ?>" method="post">                                
                    <div>
                        <label for="updateFormProductID">ID</label>
                        <input id="updateFormProductID" name="ID" type="text" readonly 
                               value="<?php echo $productDetails["ID"]; ?>">
                    </div>
                    <div>
                        <label for="updateFormProductName">Film Name</label>
                        <input id="updateFormProductName" name="FilmName" type="text" 
                                value="<?php echo $productDetails["FilmName"]; ?>">
                    </div>
                    <div>
                        <label for="updateFormProductProducer">Producer</label>
                        <input id="updateFormProductProducer" name="Producer" type="text" 
                                value="<?php echo $productDetails["Producer"]; ?>">                
                    </div>
                    <div>
                        <label for="updateFormProductYearPublished">Year Published</label>
                        <input id="updateFormProductYearPublished" name="YearPublished" type="text" 
                               value="<?php echo $productDetails["YearPublished"]; ?>">
                    </div>
                    <div>
                        <label for="updateFormProductStock">Stock:</label>
                        <input id="updateFormProductStock" name="Stock" type="text" 
                               value="<?php echo $productDetails["Stock"]; ?>">
                    </div>
                    <div>
                        <label for="updateFormProductPrice">Price:(&#163)</label>
                        <input id="updateFormProductPrice" name="Price" type="text" 
                               value="<?php echo $productDetails["Price"]; ?>">
                    </div>
                    <div>
                        <input id="updateSubmit" name="updateSubmit" value="Update product" type="submit">
                    </div>
                </form>

PHP:

if (((!empty($_GET["mode"])) && (!empty($_GET["ID"]))) && ($_GET["mode"] == "update")) {
               echo "<h1>Update product</h1>";
                if (isset($_POST["updateSubmit"])) {
                    if ((!empty($_GET["ID"])) && (!empty($_POST["FilmName"])) 
                            && (!empty($_POST["Producer"])) && (!empty($_POST["YearPublished"])) 
                            && (!empty($_POST["Stock"])) && (!empty($_POST["Price"]))) {
                        $query = "UPDATE ProductManagement "
                                . "SET FilmName = '" . $_POST["FilmName"] . "', "
                                . "Producer = '" . $_POST["Producer"] . "', "
                                . "YearPublished = '" . $_POST["YearPublished"] . "', "
                                . "Stock = " . $_POST["Stock"] . ", "
                                . "Price = '" . $_POST["Price"] . "' "
                                . "WHERE ID=" . $_GET['ID'] . ";";
                        $result = mysqli_query($connection, $query);

                        if ($result == false) {
                            echo "<p>Updating failed.</p>";
                        } else{
                            echo "<p>Updated</p>";
                                }
                                                                                        }
                                                    }
        }

关于php - 尝试在 php 中更新 mysql 数据库表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33934545/

相关文章:

python - 通过python在mysql中插入和检索图像

mysql - 具有亚马逊 RDS 安全性的 Heroku

mysql - 查找 SUBSTRING() 的 MIN() 值

PHP ZMQ 不能在 Windows 上运行,但可以在 Linux 上运行吗?

php imagecopyresampled 添加黑色背景

php - 使用 store.php 将 TiddlyWiki 5 保存到服务器

php - fetch() 方法出错

php - 为什么不使用 session 而不是数据库来锁定帐户

php - 无法在“file_get_contents()”中加载cafile流?

javascript - 需要一些有关 Highcharts JSON 格式的指示