PHP, если productid находится в определенном для каждого цикла на другой странице - PullRequest
0 голосов
/ 04 марта 2019

Надеюсь, я смогу объяснить это как можно яснее:

У меня есть страница (info.php), где запрашиваются карты (купоны), каждая из этих карт имеет идентификатор продукта.На странице, если пользователь выбирает кнопку «Заявка», карта сохраняется в другой (list -app.php).На этой другой странице отображаются все карты, заявленные пользователем в течение 48 часов.Конечно, он показывает только заявленные карты определенного пользователя, который вошел в систему.

  • info.php info.php

  • list -app.php list-claimed.php

  • таблица (заказ) database

Таблица на снимке экрана, где я получаю данные (SELECT SQL)

Ниже приведен фрагмент кода из list -app.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>

Теперь, что касается основной проблемы, в моем файле info.php я хотел бы показать слова «Вы уже запросили этот купон», если карта в данный момент находится в списке требуемых .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>
}

Любая помощь будет оценена, спасибо!

ОБНОВЛЕНИЕ:

Решил эту проблему с помощью массива, чтобы проверить, является ли продукт изкупон находится на странице list -apple.php, используя "in_array".

    <?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 } } }

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Требование:

Необходимо разрешить пользователям сохранять купоны и отображать их на другой странице.

Решение:

Сначала необходимо сохранить купоны в $_SESSION

, чтобы получить массив купонов, например: $_SESSION['coupons']

Ключом массива должен быть идентификатор купона.

Общая структура этого массива:

array(
[789799]['name'] = 'Name Of Coupon 1',
[789799]['date'] = '2019-03-04- 10:10:10',
)

Также необходимо добавить купоны, заявленные в последнем сеансе (в окне 48 часов.)

И на странице листинга,

Просто проверьте, существует ли ключ (идентификатор купона) в массиве с помощью isset ()

if (isset($_SESSION['coupons'][$rowOrder['productid']])) {
?>
<div class="col-md-12 text-align-center">
      <h3 class="color-red">You have already claimed this coupon.</h3>
    </div>
<?php
}
0 голосов
/ 04 марта 2019

Так как мне не достаточно дать вам ответ с пользовательским кодом, вместо этого я могу дать вам ответ с псевдокодом:

  1. Напишите SQL, чтобы вернуть все купоны, на которые данный пользователь уже претендовал, сохранить в уже заявленном массиве.
  2. Записать SQL для возврата всех купонов.Сохранить в массиве всех купонов.
  3. Запишите foreach(), который идет через массив всех купонов.
  4. Проверьте, есть ли данный купон в уже заявленном списке, сравнивая идентификатор купона.с идентификаторами в уже заявленном массиве.Если есть совпадение, оно уже заявлено.

Имеет ли это смысл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...