#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'];
Надеюсь, что это вам поможет!