У меня есть проблема, когда sql уже подключен к php для извлечения данных, но я получаю неопределенный индекс всякий раз, когда пытаюсь получить столбцы даты и времени (createdate и expirationdate)
имя файла: list -app.php
<?php
echo($lstOrders['createddate']);
?>
<?php
echo($lstOrders['expirationdate']);
?>
имя файла: list -app.vc.php (подключен к list -app.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 -app.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;
}
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'];
}
}
Когда вы пытаетесь получить значения массива, рекомендуется проверять, существует ли индекс / ключ, к которому вы пытаетесь получить доступ из массива, или нет. Таким образом, это не даст вам предупреждение о неопределенном индексе.
Других решений пока нет …