Как передать два значения на другую страницу php с помощью тега привязки?

#php #mysql

Вопрос:

Я пытаюсь передать значение seller_id, а также order_datetime в report-summary.php. Но как я могу это сделать? Я попробовал коды ниже, но все, что я получил, — это ошибка array to string conversion ошибки. Кто-нибудь может помочь мне решить эту проблему? Было бы лучше, если бы вы, ребята, могли показать мне примеры кода о том, как это решить. Заранее большое вам спасибо, любая помощь будет оценена по достоинству!

  <div class="col-3 my-auto">
                  <?php
                    $sql = "SELECT *, SUM(purchase_price) as purchase_price FROM ordered_items 
                  INNER JOIN sellers ON ordered_items.seller_id = sellers.id 
                  WHERE MONTH(order_datetime) = MONTH(NOW()) GROUP BY ordered_items.seller_id";
                    $query = $conn->query($sql);
                    $row = $query ->fetch_assoc();
                    $id=['seller_id'];
                    $month=['order_datetime'];
                ?>


                  <a href="report-summary.php?sellerid=<?php echo $id;?>amp;month=<?php echo $month;?>">
                  <button type="button" class="btn btn-info" style="height:34px; padding-left:10px;">
                  <i class="fa fa-file-excel-o"></i> amp;nbsp; Export Report Summary
                  </button>
                  </a>
                  </div>
                </div>
              </div>
 

Ответ №1:

Ошибка вызвана:

 $id=['seller_id'];
$month=['order_datetime'];
 

$id и $month на самом деле представляют собой 2 массива, содержащих строки «seller_id» и «order_datetime», и вы пытаетесь их распечатать.

Если вы хотите получить доступ к своей коллекции данных (извлеченных из запроса), вам необходимо выполнить итерацию результатов, а затем получить доступ к одному полю.

Чтобы сделать это, вы должны повторить свою строку$. Итак, это будет что-то вроде:

 while($row = $result->fetch_assoc()) {
  echo 'id: ' . $row['seller_id'] . 'month: ' . $row['order_datetime'];
}
 

Если $result имеет только один результат, вы можете получить доступ к данным без перебора $row. Итак, это будет:

 $id = $row['seller_id'];
$month = $row['order_datetime'];
 

Надеюсь, что это вам поможет!