小さなショッピング カートを作成し、製品をセッション (データベースなし) に保存しています。私のセッションは製品IDを設定します。しかし、保存されたセッションの製品 ID と一致する正しい製品をデータベースから取得するにはどうすればよいでしょうか?
コード:
foreach ( (isset($shopcart) && is_array($shopcart) && count($shopcart) > 0) ? $shopcart : array() as $item )
{
$this->template->shopcart = $shopcart;
}
.
<?php if( isset( $shopcart ) ): ?>
<?php foreach ($shopcart as $item): ?>
<?php echo $item['id'] ?>
<?php endforeach ?>
<?php endif; ?>
編集:
foreach ( (isset($shopcart) && is_array($shopcart) && count($shopcart) > 0) ? $shopcart : array() as $item )
{
$this->template->shopcart = DB::select()->where('id', 'IN', $item['id']) ->from('products')->execute();
//$this->template->shopcart = $shopcart;
}
Database_Exception [ 1064 ]: SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、1 行目の「5」付近で使用する正しい構文を確認してください [ SELECT * FROM products
WHERE id
IN '5' ]
編集2:
$this->template->shopcart = array();
if (count($shopcart))
{
$this->template->shopcart =
DB::select()
->where('id', 'IN', $item)
->from('products')
->execute();
}
テンプレート:
<?php if( isset( $shopcart ) ): ?>
<?php foreach ($shopcart as $item): ?>
<?php echo $item['id'] ?> //This is the product id in my saved session but i need to get the name from the database
<?php endforeach ?>
<?php endif; ?>