我已经通过Stack Overflow上类似措辞的问题进行了检查,但没有一个是针对我尝试的内容。
我有会话数据,两个循环和一个SQL表。
......这也可以用不那么抽象和友好的方式来描述:
由于我的会话数据包含产品ID(键)和相应的数量(值),我需要将数量显示为每个输出行的一部分。
id | title | description | unit cost | amount | subtotal
session data key | from database | from database | from database | session data value | basic PHP math
(also in database) (unit cost * amount)
使用会话数据键查询require产品的第一个循环:
$id_from_session = "WHERE id = '9999999999'"; //fix due to not being sure how to simuataneously incorporate "WHERE" and "OR" into query loop (only looping the "OR" condition).
foreach($_SESSION['post'] as $key=>$value)
{
$id_from_session .= "OR id ='".$key."'";
}
输出查询结果行的第二个循环:
foreach ( $yourorders as $yourorder )
{
?>
<?php echo $yourorder->title; ?></br>
<?php echo $yourorder->description; ?></br>
<?php echo $yourorder->value; ?></br>
<?php /* I NEED THE QUANTITY HERE */ ?></br>
<?php /* VALUE * QUANTITY HERE */ ?></br>
<?php
}
<?php /* OVERALL TOTAL OUTSIDE OF LOOP */ ?></br>
如何将会话数据循环中的数量(以及数量*单位值)合并到SQL结果循环中?
答案 0 :(得分:2)
$_SESSION['post'][$yourorder->id]
应该让你的数量合适吗?所以,
<?php echo $_SESSION['post'][$yourorder->id]; ?>
或者是否允许使用短标签
<?= $_SESSION['post'][$yourorder->id]; ?>
另一种构建WHERE字符串的更好方法。
$where = array();
foreach($_SESSION['post'] as $key=>$value)
{
$where[] = "id ='".$key."'";
}
$id_from_session = "WHERE " . implode(' OR ', $where);
答案 1 :(得分:0)
$ _ SESSION ['post'] [$ yourorder-&gt; id]为您提供数量,因为密钥是产品ID:)
嗯..如果您可以绝对确定您的购物车钥匙不需要转义,您可以写下:
$id_from_session = "WHERE id IN ('" . implode( "', '", array_keys($_SESSION['post']) ) . "')";