我正在尝试使用带保存按钮的html / php表来更新我的数据库以确认更改并保存在数据库中。
如何编辑“数量”行,如文本字段,并使用按钮进行保存以确认。
这是我的表
<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>
请帮忙。谢谢!
答案 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循环,以便它可以显示表格中的所有数据。