我已经设置了一个MySQL数据库来跟踪库存。到目前为止,它运作良好,包含3页。第一页(基本html)提示用户扫描或输入条形码编号并按Enter键。
第二页(.php)获取输入的信息,在MySQL表中找到匹配的条形码,并在表格中返回行(条形码,描述,数量)。第三页几乎只是重定向到第一页,因此我可以轻松搜索新项目。
这已经适用于查找库存,但我需要能够修改行的数量。这可以通过在第2页的返回表格下添加“修改”表单,并在第3页上将输入的数字发送到PHP脚本来实现,还是我离开基地?
我想我的主要问题是,如何添加或减去数量值,而不是仅使用新值更新单元格。
目前,第2页看起来像这样:
<?php
//Table
echo "<table style='border: solid 1px green;'>";
echo "<tr><th>Barcode</th><th>Description</th><th>Quantity</th></tr>";
class TableRows extends RecursiveIteratorIterator {
function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}
function current() {
return "<td style='width:150px;border:1px solid green;'>" . parent::current(). "</td>";
}
function beginChildren() {
echo "<tr>";
}
function endChildren() {
echo "</tr>" . "\n";
}
}
//Connection Info
$servername = "127.0.0.1";
$username = "XXXX";
$password = "XXXX";
$dbname = "foo";
//Connection Started, Data pulled
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT * FROM inventory WHERE Barcode LIKE :barcode");
$paramBinding = "%" . $_POST["find"] . "%";
$stmt->bindParam(':barcode', $paramBinding);
$stmt->execute();
// set the resulting array to associative
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
}
//Error Check
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
//Kill Connection
$conn = null;
echo "</table>";
?>
</br>
Modify Quantity:
</br>
(input positive number to be added to stock or negative number to subtract from stock)
</br>
<form name="Modify" action="Redirect.php">
<input type="text" name="modify">
<input type="submit" value="Modify">
超级感谢提前!
答案 0 :(得分:0)
我目前正在开展一个类似的项目,是的,你似乎正走在正确的轨道上。我的策略如下: