我已经创建了2张桌子
TABLE产品
.selected {
background:lightpink;
}
.notselected {
background:lightblue;
}
和表productSub
------------------------------
| ID | name | duration|
------------------------------
| 1 | box | 10 |
| 2 | plastic | 20 |
------------------------------
数据库产品中的Sub 父级表示数据库产品的ID,我已经成功在php代码中显示了带有子数据的所有数据。带有输入单选按钮的数据显示可以选择要订购的数据。
-------------------------------------------------
| ID | type | min_order | max_order | parent |
-------------------------------------------------
| 1 | paper S | 1 | 10 | 1 |
| 2 | paper L | 11 | 50 | 1 |
| 3 | wood S | 1 | 20 | 2 |
| 4 | wood L | 21 | 50 | 2 |
--------------------------------------------------
提交表单后,它将把数据发布到我的php页面并给我数据表单。
提交数据后,我得到的是由productSub组成的两个数组。
<form method="post" name="productform">
<?php foreach($allproducts as $key => $products):?>
<h4 class="title">
<input type="radio" name="p_id" value="<?php echo $products['id'];?>" checked="">
<?php echo $products['name'].' <small>'.$products['duration'].'</small>';?>
</h4>
<?php $allproductsparent = getAllProductsParent($products['id']); foreach($allproductsparent as $value):?>
<table class="table"><tr>
<th scope="row"><?php echo $value['type'];?></th>
<td><?php echo $value['min_order'].' ~ '.$value['max_order'];?></td>
</tr></table>
<?php endforeach; ?>
<?php endforeach; ?>
<input type="text" id="order" class="form-control" name="order" placeholder="Total Order" required>
<input type="submit" id="submit" class="btn btn-success" name="submit" value="Submit">
</form>
问题是如何根据总订单提交过滤数据。并且数据应在productSub最小订单和最大订单之一之间,然后仅显示1个符合条件的productSub。 谢谢
================================================ =====================
为您提供更多信息,我已制作了此PDO以显示提交的数据
Array
(
[0] => Array
(
[id] => 1
[type] => Paper S
[min_order] => 1
[max_order] => 10
[duration] => 10
)
[1] => Array
(
[id] => 1
[type] => Paper L
[min_order] => 11
[max_order] => 50
[duration] => 10
)
)
并像这样显示它
function getProductById($id){
$res_arr = [];
global $conn;
$stmt = $conn->prepare("SELECT ps.*,p.* FROM productsub ps INNER JOIN products p ON p.id = ps.parent WHERE ps.parent = :id");
$stmt->bindParam(':id', $id);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
while ($res = $stmt->fetch())
{
$res_arr[]= $res;
}
return $res_arr;
}
答案 0 :(得分:0)
找到答案
在我的php中使用foreach并过滤一些数据将为我提供我想要的提交表单中的确切数据。
这是代码。
foreach($productid as $product){
if($_POST['order'] >= $product['min_order'] && $_POST['order'] <= $product['max_order']){
echo $product['name'].' because the order was '.$_POST['order'];
}
}
并会显示这样的数据
论文1,因为订单是10
感谢所有人