使用HTML / PHP表更新MySQL数据库(内联)

时间:2016-08-27 00:37:44

标签: php html mysql

我正在尝试使用带保存按钮的html / php表来更新我的数据库以确认更改并保存在数据库中。

Here's my Table

如何编辑“数量”行,如文本字段,并使用按钮进行保存以确认。

这是我的表

<table class=" table-responsive table table-striped table-bordered table-hover ">
            <thead>
                <tr>
                    <th>Item #</th>
                    <th>Description</th>
                    <th>Unit</th>
                    <th>Quantity</th>
                </tr>
            </thead>

            <?php
            $servername = "localhost";
            $username = "root";
            $password = "";
            $dbName = "db";
            $port = "3306";

            $conn = new mysqli($servername, $username, $password, $dbName, $port);

            if($conn->connect_error)
            {
            die("Connection Failed: ".$conn->connect_error);
            }

            $sql = "SELECT * FROM product";
            $result1 = $conn->query($sql);
    $result2 = $conn->query($sql);

            ?>
            <tbody>

                <?php

        while ($row = mysqli_fetch_array($result1)) {

        echo "
                <tr>
                    <td>" . $row[0] . "</td>
                    <td>" . $row[1] . "</td>
                    <td>" . $row[2] . "</td>
                    <td>0</td>

                </tr>";
                }

                ?>
            </tbody>

        </table>

请帮忙。谢谢!

3 个答案:

答案 0 :(得分:0)

将表放在表单中。

<form action="give_your_action_page" method="post">
    <table class=" table-responsive table table-striped table-bordered table-hover ">
            <thead>
                <tr>
                    <th>Item #</th>
                    <th>Description</th>
                    <th>Unit</th>
                    <th>Quantity</th>
                </tr>
            </thead>

            <?php
            $servername = "localhost";
            $username = "root";
            $password = "";
            $dbName = "db";
            $port = "3306";

            $conn = new mysqli($servername, $username, $password, $dbName, $port);

            if($conn->connect_error)
            {
            die("Connection Failed: ".$conn->connect_error);
            }

            $sql = "SELECT * FROM product";
            $result1 = $conn->query($sql);
    $result2 = $conn->query($sql);

            ?>
            <tbody>

                <?php

        while ($row = mysqli_fetch_array($result1)) {

        echo "
                <tr>
                    <td>" . $row[0] . "</td>
                    <td>" . $row[1] . "</td>
                    <td>" . $row[2] . "</td>


             <td><input type='number name='".$row[1]."' value='".$row[3]."'/></td>

            </tr>";
            }

            ?>
        </tbody>

    </table>

现在,在您的操作页面,您可以使用$ _POST数组使用&#34;描述&#34;中的值来访问表单值。字段。

例如:$_POST["banana"]将给出香蕉的数量。

使用这些值更新数据库。

答案 1 :(得分:0)

您要更改数据库中没有的字段吗? 因为

<tr>
   <td>" . $row[0] . "</td>
   <td>" . $row[1] . "</td>
   <td>" . $row[2] . "</td>
   <td>0</td>    ---------------->   ? (empty) ?
</tr>

您必须首先在数据库中创建一个名为Quantity的字段,如果这是一个困难的提问,请再试一次。

答案 2 :(得分:0)

好吧你的代码非常糟糕,大部分内容都很糟糕,你的Q很难理解,但是确定,下次尝试更准确=),我的答案取决于我的理解你试图问的问题。 我建议您从w3shool主题:Select data from database

在我的回答或我的代码中,如果可以这样说,我使用了PDO,什么是PDO?

  

PDO是PHP Data Objects的首字母缩写。 PDO是一种精益,一致的方式   访问数据库。这意味着开发人员可以编写可移植代   更容易。 PDO不是像PearDB那样的抽象层。 PDO是一个   更像是使用统一API的数据访问层(应用程序   编程接口)。

在Google上搜索并阅读有关其工作原理的一些信息并尝试学习它,它很简单,与(MYSQLI)相同。

这是我的代码,我测试了很多次并且它有效,这段代码可以用很多方式编写,但我试着让它尽可能简单。

        <?php
                        // Start of the first part ( connect to the database usnig PDO 
                        $servername = "localhost";
                        $username   = "root";
                        $password   = "";
                        $database  = "your database name";
                        try {
                            $conn = new PDO("mysql:host=$servername;dbname=$database", $username, $password);
                            // set the PDO error mode to exception
                            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                            }
                        catch(PDOException $e)
                            {
                                echo "Connection failed: " . $e->getMessage();
                            }

                       // END of the first part 

                      // second part : bring the new quantity from the field 
                      if(isset($_POST['update']))
                        {
                            $newquantity = $_POST['newQu'];
                    $itemName = $_POST['item'];
                    $UpdateOnQuantity = $conn->prepare( "UPDATE hr SET Quantity = ? WHERE Item = ?");
                    $UpdateOnQuantity->execute(array($newquantity,$itemName));

                        if($UpdateOnQuantity)
                            {


                            }
                            else
                                {
                                    echo "error";

                                }
                }

                $FetchNewQuantity = $conn->prepare("SELECT * FROM hr");
                $FetchNewQuantity->execute();


?>

<html>  
<head>

</head>

    <body>
        <table class=" table-responsive table table-striped table-bordered table-hover ">
            <thead>
                <tr>
                    <th>Item #</th>
                    <th>Description</th>
                    <th>Unit</th>
                    <th>Quantity</th>
                </tr>
            </thead>
            <tbody>
            <?php 
                while($FetchedData = $FetchNewQuantity->FETCH(PDO::FETCH_ASSOC))
                {
                    ?>
                <tr>
                    <td><?php echo $FetchedData['Item']; ?></td>
                    <td><?php echo $FetchedData['Description']; ?></td>
                    <td><?php echo $FetchedData['Unit']; ?><td>
                    <td><?php echo $FetchedData['Quantity']; ?></td>
                    <td>
                        <form action="test2.php" method="POST">
                            <input type="hidden" name="item" value="<?php echo $FetchedData['Item']; ?>">
                            <input type="text" name="newQu">
                            <input type="submit" name="update">
                        </form>
                    </td>
                </tr>
                <?php } ?>
            </tbody>
        </table>
</body>
</html>

这是我的代码希望它对你有所帮助,我测试了很多次,因为我说如果它不能与你合作让我知道,如果你不喜欢PDO只是用普通的Mysqli代码替换PDO代码。

编辑:我再次编辑了代码,没有注意到你链接了你的表。我添加了一个while循环,以便它可以显示表格中的所有数据。