Hier heb ik een voorbeeld van de cookie, die alleen de id, quantity en een eventuele note opslaat:
array(1) {
[0]=>
array(3) {
[0]=>
array(3) {
["id"]=>
string(1) "3"
["quantity"]=>
string(2) "12"
["note"]=>
string(4) "test"
}
[1]=>
array(3) {
["id"]=>
string(1) "5"
["quantity"]=>
int(279)
["note"]=>
string(4) "test"
}
[2]=>
array(3) {
["id"]=>
string(1) "4"
["quantity"]=>
string(15) "124444444444444"
["note"]=>
string(9) "test note"
}
}
}Ik gebruik een model class om queries makkelijker te gebruiken.
Zo doe ik: $list = $model->selectMultipleById($cart, 'carpet'); om alle objecten uit $cart te loopen met de bijbehordende database data.
public function selectMultipleById($ids, $table){
$items = array();
foreach($ids as $item){
$items[] = $item['id'];
}
$ids = implode(',', $items);
$stmt = $this->dbh->prepare("SELECT * FROM $table where `id` in ($ids) ");
$stmt->execute();
return $stmt;
}In de while loop zelf, krijg ik het alleen niet voor elkaar om de quantity erbij uit te printen, omdat er het een en ander in de code is verandert.
<?php
while($row = $list->fetch(PDO::FETCH_ASSOC)):
?>
<tr>
<td data-th="Product">
<div class="row">
<div class="col-sm-2 hidden-xs"><img src="<?=img_url();?>/tapijt-voorbeeld.jpg" alt="..." class="img-responsive"/></div>
<div class="col-sm-10">
<h4 class="nomargin"><?=$row['name'];?></h4>
<p><?=$row['brand'];?></p>
<p><?=$cart[$row['id']]['quantity'];?></p>
</div>
</div>
</td>
<td data-th="Price">$1.99</td>
<td data-th="Quantity">
<form action="#" method="post">
<input type="number" name="quantity" class="form-control text-center" value="<?=$cart[$row['id']]['quantity'];?>">
</form>
</td>
<td data-th="Subtotal" class="text-center">1.99</td>
<td class="actions" data-th="">
<form action="#" method="post">
<input type="hidden" name="item" value="<?=$row['id'];?>">
<button name="remove" value="remove" class="btn btn-danger btn-sm"><i class="fa fa-trash"></i></button>
</form>
</td>
</tr>
<?php
endwhile;
?>
</tbody>Dit komt omdat ik eerst het array object id gebruikte voor een product, maar later toch realiseerde dat een product een id kan hebben die aangepast kan worden, om weet ik het welke reden dan ook. Ik zoek hiervoor een goede oplossing. Bij ontbreken van bepaalde code, hoor ik het graag.