使用PDO修改MySQL表中的整数

时间:2015-05-29 13:38:41

标签: php html mysql pdo

我已经设置了一个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">

超级感谢提前!

1 个答案:

答案 0 :(得分:0)

我目前正在开展一个类似的项目,是的,你似乎正走在正确的轨道上。我的策略如下:

  1. 扫描一个项目,并从数据库中提取数据。
  2. 点击“修改”按钮。
  3. 单击按钮时,表单将填充当前数据。我一直在努力从html表中提取数据,而不是回到数据库。我一直在使用jQuery。
  4. 提交表单时会发送更新查询。