Я пытаюсь создать обзор свойств продукта для системы счетов. Пока что большинство вещей объединяется с использованием классов и PDO. У меня есть следующая проблема.
В моем классе я создал функцию, которая создает массив моих продуктов. Он загружает некоторую информацию из базы данных, чтобы построить этот массив. Этот массив я хочу использовать для отображения всех продуктов, которые я выбрал:
$prod1 - $prod1Name - $prod1Descr - $prod1Price
$prod2 - $prod2name - $prod2Descr - $prod2Price
и т. д.
Я решил, что ассоциативный массив поможет мне создать столбцы. Хотя проблема в том, что я немного не понимаю, как таким образом создавать несколько строк и столбцов. Я думал о чем-то вроде:
$prod[1]["name"] - $prod[1]["descr"] - и т.д.
Затем использовать это в foreach цикла, чтобы создать столько новых строк, сколько требуется. Единственное, что я мог придумать, это мой index.php (как показано ниже), потому что использование индекса (определение [1]), похоже, не работает так, как я думаю, это должно быть реализовано.
Насколько я понимаю, я присваиваю переменную в своем классе как массив, а затем переопределяю массив при загрузке информации из базы данных. Может ли кто-нибудь сказать мне, как я могу попытаться решить эту проблему?
У меня есть следующий класс:
<?
class Invoice{
var $vendorID;
var $product = array();
function product_array(){
global $db;
$query = $db->conn->prepare('
SELECT ProductName, ProductDescription, ProductDuration, ProductPriceInclVat, ProductPriceExclVat, ProductVatType
FROM products WHERE VendorID = :VendorID
');
$array = array (
'VendorID' => $this->vendorID
);
$query->execute($array);
$result = $query->fetchall();
if (empty($result)){
echo"Could not find any products matching your criteria.";
die;
} else {
foreach($result as $row) {
$this->product = array("Name" => $row['ProductName'],
"Description" => $row['ProductDescription'],
"Duration" => $row['ProductDuration'],
"PriceExclVat" => $row['ProductPriceExclVat'],
"PriceInclVat" => $row['ProductPriceInclVat'],
"VatType" => $row['ProductVatType']
);
}
}
}
}
?>
а затем у меня есть следующий код в моем index.php:
<?
$invoice = new Invoice();
foreach ($invoice->product as $key => $value){
echo $key . "<br>";
echo $value . "$value";
echo "<br>";
}
?>