拉数据库和更新数据库 - php

时间:2015-05-04 23:50:11

标签: php mysql edit

我有行显示产品及其长袜。 我可以从数据库中提取记录,但不知怎的,我被困在编辑部分。当我点击编辑时,我不知道如何传递id,所以我可以使用id来选择表格中需要选择的内容。

我有类似stock.php的东西,它显示了所有item_name和stock

    <?php
        $sql    = "SELECT * FROM inventory";
        $result = mysqli_query($mysqli,$sql);

    //make sure database queries
    if (!$result) {
        echo "DB Error, could not query the database\n";
        echo 'MySQL Error: ' . mysql_error();
        exit;
    }

    if ($result->num_rows > 0) {
        echo "<table><tr><td>Name</td>
                         <td>Stock</td>
                     </tr>";
        // output data of each row
        while($row = $result->fetch_assoc()) {
            $id = $row['id'];
            echo "<tr>
                    <td>".$row["item_name"]."</td>
                    <td>".$row["stock"]."</td>
                    <td>
                        <form action='edit.php' method='POST'>
                            <input type='hidden' name='$id' value='$id'/>
                            <input type='submit' name='edit' value='edit' />
                        </form>
                    </td>
                 </tr>";
        }
        echo "</table>";
    } else {
        echo "0 results";
    }
?>

在我的edit.php中我有类似的东西,因为$id未通过而给我错误

include_once "init.php";
if ($_SERVER['REQUEST_METHOD']=='POST') {
    // query the table by matching up the int id
    $sql    = "SELECT * FROM inventory WHERE id = '$id'";
}

我想在新页面中再次提取数据,然后再次输入框以让用户更新库存#或甚至产品名称以及其他必要的商品名称。

2 个答案:

答案 0 :(得分:1)

输入声明中有错误。 HTML项目的名称不能以特殊字符开头(如$)。您应该以这种方式设置基于变量的名称:

<input type='hidden' name='".$id."' value='".$id."'/>

同样在你的edit.php中,你的SQL语句有一个错误。

$sql    = "SELECT * FROM inventory WHERE id = '$id'";

应该是:

$sql = "SELECT * FROM inventory WHERE id = ".intval($id);

答案 1 :(得分:0)

您需要执行以下更新:

stock.php

<input type='hidden' name='id' value='$id'/>

edit.php

$sql    = "SELECT * FROM inventory WHERE id = '".$_POST["id"]."'";

您将当前的id值作为post var名称传递,var的名称应为“id”