У меня есть эта проблема, когда sql уже подключен для php для извлечения данных, но я получаю неопределенный индекс всякий раз, когда пытаюсь получить столбцы даты и времени (createddate и expirationdate)
имя файла: список-заявленный.php
<?php
echo($lstOrders['createddate']);
?>
<?php
echo($lstOrders['expirationdate']);
?>
имя файла: list -hibited.vc.php (подключено к list-Claim.php)
require_once($routePath . "_mc/Order.mc.php");
$mcOrder = new Order_MC();
$usrcustomerid = $_SESSION['usrcustomerid'];
$lstOrders = $mcOrder->SelectLst_ByUsrCustomerID($db, $pageNum, $limit, $usrcustomerid);
имя файла: Order.mc.php (база данных подключена через list -hibited.vc.php)
public function SelectLst_ByUsrCustomerID($db, $pageNum, $limit, $usrcustomerid) {
$start = ($pageNum * $limit) - $limit;
$stmt = $db->prepare(
" SELECT orderid, productid, usrcustomerid, amount, amountrefunded, createddate, scheduleddate, useddate, expirationdate
FROM `order`
WHERE usrcustomerid = :usrcustomerid
ORDER BY createddate DESC
LIMIT " . $start . ", " . $limit
);
$stmt->bindValue(':usrcustomerid', $usrcustomerid, PDO::PARAM_INT);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $rows;
}
я получаю неопределенный индекс "Примечание: неопределенный индекс: createddate в C: \ xampp \ htdocs \ mwc_canuto \ cards \ list -hibited.php в строке 82" строка является эхом
Да, потому что у вас многомерный массив. Индекс находится не на том уровне, на котором вы пытаетесь получить к нему доступ. У вас есть 0
, 1
и т. д. На самом верхнем уровне. Ваши столбцы находятся внутри каждого индекса. Сделайте print_r($lstOrders)
, и вы увидите структуру массивов.
return $rows
: в результате вы сохраняете ассоциативный массив. Чтобы получить значения из ассоциативного массива, вам нужно пройти через него.
Например:
foreach($lstOrders as $values){
if (array_key_exists('createddate', $lstOrders)){
$created_date = $values['createddate'];
}
if (array_key_exists('expirationdate', $lstOrders)){
$created_date = $values['expirationdate'];
}
}
Когда вы пытаетесь получить значения массива, рекомендуется проверить, существует ли индекс / ключ, к которому вы пытаетесь получить доступ из массива. Таким образом, он не даст вам предупреждения о неопределенном индексе.
попробовал этот цикл foreach в моем html / php, но я получаю: «Предупреждение: array_key_exists () ожидает ровно 2 параметра, 1 из которых указан в C: \ xampp \ htdocs \ mwc_canuto \ cards \ list -hibited.php в строке 106», ошибка строки если
$lstOrders
- это многомерный массив. Пройдитесь по нему. В будущем, пожалуйста, включайте сообщения об ошибках в свои вопросы.