2

首先,我对 PHP(和一般编程)非常陌生,我试图在业余时间通过使用一些使用 php 和 mysql 的自定义工具开发一个游戏网站来自学它。因此,请在继续阅读时牢记这一点。

我需要的是一个正确的方向(或对什么做什么做一点解释)来学习如何正确编码一个函数,以便在用户将数据发送到 POST 后为我在表单上做一些数学运算。

这是背景信息:

在数据库中,我有一个“原材料”表,可以转换成不同数量的 8 种不同“产品”。然后是另一个表格,其中包含这 8 种产品及其价格。

我有一个表单设置,它通过对原始项目名称的简单查询自动生成我的选择框(SelectList1 到 11):

<td>
<div align="center">
    <select name="SelectList1">
       <option value=0></option>
       <option value=1>Raw Item 1</option>
       <option value=2>Raw Item 2</option>
       ...
       <option value=47>Raw Item 47</option> //Yes, there is a lot
</div>
</td>

选择框旁边是这个文本输入框,人们可以使用它输入每个选择的“原材料”的数量。名称=productNum1 到 11

<td>
    <input type="text" size="15" maxlength="10" name="productNum1" id="productNum1">
</td>

用户表单到此结束——他们选择原始商品,然后输入要销售的数量。

现在提交时,我有另一段冗长的代码进入数据库并获取产品价格表和“原材料”表所需的数组以及所有这些数据。

获取价格数组布局:

$pDA = Array (
    [product1] => Array (
        [id] => 1
        [productname] => Product1
        [price] => 599 //whole number used to avoid float precision issues
        )
    .....
    [product8] => Array ( //repeat above values

获取的原材料数组:

$oDA = Array (
    [material1] => Array (
        [id] => 1
        [materialname] => Material1
        [batch] => 100 //Number needed to process
        [product1] => 0 //changes based on material
        [product2] => 0 //changes based on material
        [product3] => 0 //changes based on material
        [product4] => 0 //changes based on material
        [product5] => 0 //changes based on material
        [product6] => 0 //changes based on material
        [product7] => 0 //changes based on material
        [product8] => 0 //changes based on material
        )
    ..... continue all the way down to 
    [material47] => Array ... etc

这就是所有的数据。我现在需要做的是选择框帖子,如果它们大于 0,则让它获取适当的数组数据和产品编号。

一旦有了这些并且它们被正确存储,就需要针对用户提交的“productNum1”值进行数学运算。

例如:

处理后,Rawmaterial1 有 product1 的 500 个和 product6 的 250 个,其余为 0 个。Rawmaterial1 有一批 100 用户选择 Rawmaterial1 用户输入 1000 for # of Rawmaterial1

Fetch Array Data against Select Box
Array returns data for Rawmaterial1
    (1000 submitted / 100 Batch) = 10 runs
        10 runs = 5000 of product1
        10 runs = 2500 of product6
            5000 * product1price = value1
            2500 * product2price = value2
$totalvalue = $value1 + $value2

这就是我迷失的地方-我可以像以前一样通过将帖子值分配给大量字符串和变量来单独编码来进行数学运算,但是我很肯定有一种更简单的方法,但我缺乏理解.

提前感谢任何人在这里阅读我的求救小说。

4

1 回答 1

0

我认为你正在做这样的事情:

  1. 从数据库中获取所有数据
  2. 分配给数组
  3. 获取 $_POST 数据
  4. 将 $_POST 数据与获取的数组匹配

获取 $_POST 信息并使用此信息查询数据库更为标准(确保在查询中运行数据之前过滤数据以防止注入)。

因此,如果用户说他正在销售 50 单位的产品 1 和 20 单位的产品 2,这些数字可以用于数据库查询,因此您只返回您实际需要的数据。

这意味着您不需要在代码中进行匹配或数学运算;如果我正确理解您的问题,它真的应该在 SQL 中完成。

如果我没有正确理解您的问题,请随时发表评论。

于 2012-09-10T21:02:18.627 回答