PHP,如果productid在某个for each loop in another page中

标签 php html mysql sql

希望我能尽可能清楚地解释这一点:

我有一个页面 (info.php),其中声明了卡片(优惠券),这些卡片每张都有一个产品 ID。在页面中,如果用户选择“claim”按钮,卡片将保存到另一个 (list-claimed.php)。此另一页显示用户在 48 小时内领取的所有卡片。当然,它只显示已登录的特定用户已领取的卡。

  • 信息.php info.php

  • list-claimed.php list-claimed.php

  • 表(顺序) database

屏幕截图中的表是我从 (SELECT SQL) 获取数据的地方

这是 list-claimed.php 中的一段代码,用于显示已认领的卡片:

  <h2 class="bold_font text-align-center">LIST OF CLAIMED CARDS</h2><br>
        <?php
          $i = 0;
          foreach($lstOrders as $rowOrder) {
          if ($rowOrder['expirationdate'] >  date("Y-m-d H:i:s")){
        ?>
          <div class="col-md-4 spacer">
            <div class="col-md-12">
              <?php
                $productid = $rowOrder['productid'];
                $rowProduct = $mcProduct->SelectObj_ProductId($db, $productid);
                $rowSelect = $mcOrder->SelectLst($db, $pageNum, $limit);
              ?>
            </div>

现在主要关注的是,如果该卡当前在 list-claimed.php 中,我想在我的 info.php 中显示“您已经领取了这张优惠券”的字样。即满足48小时内用户领取条件的卡片。

    <?php
    foreach($lstOrders as $rowOrder) {
    if ($rowOrder['expirationdate'] <  date("Y-m-d H:i:s")) { ?>

      <div class="col-md-12 text-align-center">
        <h3 class="color-red">You have already claimed this coupon.</h3>
      </div>

    <?php } }

如何修改 php 代码以获得我需要的内容?

我的目标:(伪代码)

 if ($productid is in list-claimed.php){

    <div class="col-md-12 text-align-center">
      <h3 class="color-red">You have already claimed this coupon.</h3>
    </div>
}

任何帮助将不胜感激,谢谢!

更新:

解决了这个问题,使用数组检查优惠券的 productid 是否在使用“in_array”的 list-claimed.php 页面中。

    <?php
     foreach($lstInfo as $rowOrder) {
       if (isset($rowOrder['productid']) && ($rowOrder['expirationdate'] >  date("Y-m-d H:i:s"))) {

         //array (visually seen in list-claimed.php)
         $claimed = array($rowOrder['productid']);

         //check if current card exists in claimed array
         if (in_array($rowProduct['productid'] , $claimed) ) {
     ?>
     <div class="col-md-12 text-align-center">
       <h3 class="color-red">You have already claimed this coupon.</h3>
    </div>
    <?php } } }

最佳答案

由于我没有足够的自定义代码答案给你,我可以给你一个伪代码答案:

  1. 编写SQL返回给定用户已领取的所有优惠券,存储在已领取的数组中。
  2. 编写 SQL 返回所有优惠券。存储在所有优惠券数组中。
  3. 编写一个遍历所有优惠券数组的 foreach()
  4. 通过比较优惠券 ID 与已领取数组中的 ID,检查给定优惠券是否在已领取列表中。如果有匹配项,则已声明。

这有意义吗?

关于PHP,如果productid在某个for each loop in another page中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54980252/

相关文章:

mysql - LoopBack:从 MySql 导入模型

mysql - 小的 select 子查询使整个查询减慢大约 10 倍

php - 如何避免向 MySQL 中插入重复项?

javascript - 使表单在刷新时不提交

php - 当另一个表保存特定值时,如何使用 MySQL 将某些内容插入到表中

php - 跟踪图片 src 标签的印象

javascript - 新的 Webkit 在数字类型输入中将十进制逗号转换为 ~ 点,反之亦然。该浏览器功能的 Javascript 名称?

javascript - 如何在 codeigniter 中将数据从 View 发送到 Controller

html - 无法让我的导航越过在翻转时淡入的头部

mysql - 为什么 OdbcDataReader 需要实时连接