对于我的第一次编程尝试,我正在使用 php 和 MySQL 制作一个简单的 webapp,用于输入客户信息并存储有关订单的信息。
到目前为止,我已经制作了一个表格来输入客户信息,一个页面来编辑该信息,另一个页面来显示不同的客户,这一切都很好。
但是,在尝试实施下一阶段时,我遇到了麻烦。
我有一个包含 3 列的 editcustomers 页面。
- 第 1 列显示了一个包含客户信息的表单,允许对其进行编辑。
- 第 2 列允许订购产品并显示订购了多少产品
- 第 3 列显示到目前为止支付的总额和欠款总额。
我目前拥有的页面代码:
<html>
<?php
$id = $_GET['id'];
require_once('connect.php');
$sth = $dbh->query("SELECT * FROM customers where id = '$id'");
$sth->setFetchMode(PDO::FETCH_ASSOC);
?>
<div id="main">
<div id="left">
<form name="myForm" action ="process.php" method ="post" >
<?php while($row = $sth->fetch()){ ?>
<p><input type = "hidden" name ="id" value="<?php echo $row["id"] ?>"/>
<p><input type = "text" name ="firstName" size ="30" value=" <?php echo $row["firstName"]?>"/>
<p><input type = "text" name ="lastName" size ="30" value="<?php echo $row["lastName"]?>"/>
<p></p>
<input type="submit" value="Update" />
<?php }?>
</div>
<div id="mid">
<p>Amount owed<br />
<input type = "text" name ="moneyOwed" size ="30" /></p>
<input type="submit" value="Pay" />
<p>Number of aaaa<br />
<input type = "text" name ="numAaa" size ="30" /></p>
<p>Number of bbbb<br />
<input type = "text" name ="numBbb" size ="30" /></p>
<p>
<input type="submit" value="Update" />
</div>
<div id="right">
<b>Total Balance</b>
<p> Money owed: </p>
<p> aaa total: </p>
<p> bbb total: </p>
<p> Total: </p>
<input type = "text" name ="pay" size ="20" /></p>
<input type="submit" value="Make Payment" />
</div>
<?php
$dbh =null;
?>
</body>
</html>
我有以下数据库结构:
- 客户表、名字、姓氏等基本信息以及 id 字段。
- 一个产品表,列出了不同的产品,只有 1 行包含每个产品的成本。
- 采购表,id 字段,numProductA、numProductB 等字段,显示订购的每个产品的数量
我遇到的问题是,在我的editcustomerspage 中,我有一个数据库查询来从customers 表中读取信息以填充我第一列中表单中的字段,如果选择了函数,还有一个单独的查询来更新它。
更新第二个表单应该没问题,因为我可以使用隐藏字段来区分表单,但是我不确定如何从客户表和购买表中读取信息,以便我可以在第二个表单中填充字段。
部分问题在于,如果给定客户尚未下订单,则购买表可能为空。
我正在考虑摆脱购买表,并将字段添加到用户表上,这将解决我的问题,尽管我认为这通常被认为是不好的做法?
产品将在应用程序中固定,不会更改。即便如此,将列名成本和名称以及每个产品作为记录仍然会更好吗?
我可以采取哪些方法来解决这个问题?