我已經設置了一個MySQL數據庫來跟蹤庫存。到目前爲止,它運行良好,由3頁組成。第一頁(基本HTML)提示用戶掃描或輸入條形碼號碼並按回車鍵。使用PDO修改MySQL表中的一個整數
第二頁(.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">
巨型提前感謝!
有沒有任何規則如何做到這一點。只要你願意,只要你能在6個月內瞭解它就可以了。 – Andrew