<?php
try{
session_start();
if(!isset($_SESSION['on'])) {
header("location:homepage.php");
}
include('dbconnectie.php');
$query = $db->prepare("SELECT id_img FROM cart WHERE id_u = :id");
$query->bindParam("id", $_SESSION['id_u']);
$query->execute();
$result = $query->fetchALL(PDO::FETCH_ASSOC);
$query = $db->prepare("SELECT * FROM shop WHERE id_img = :id_img");
$query->bindParam("id_img", $result);
$query->execute();
$result1 = $query->fetchALL(PDO::FETCH_ASSOC);
echo "<table>";
foreach($result1 as &$data) {
echo "<tr>";
$img = $data['img_url'];
echo "<td>" . $data["brand"] . "</td>";
echo "<td>" . $data["model"] . "</td>";
echo "<td> Condition: " . $data["cond"] . "/10 </td>";
echo "<td> Prijs: $ " . number_format($data["price"],2,",",".") . "</td>";
echo "<td> <img src='$img' width='400' height='300' ></img> </td>";
echo "<td>" . $data['id_img'] . "</td>";
echo "</tr>";
}
echo "</table>";
} catch(PDOException $e) {
die("Error!: " . $e->getMessage());
}
?>
<html>
<title>Just for kicks</title>
<header>
<?php
include("#nav.php");
?>
</header>
</html>
在第13行它说: 注意:第13行的/storage/ssd2/719/5658719/public_html/cart.php中的数组转换为字符串 ?&GT;
我不确定如何解决这个问题。我尝试做的是从表格购物车中获取与$ _SESSION [&#39; id_u&#39;]对应的所有id_img,其中表格为id_u。 那么我想要做的就是每个id_img我试图从桌面商店获得与id_img相对应的所有细节。喜欢品牌,型号和cond。
评论中有人提到了一个可能的答案,但即便如此,我也无法理解如何解决我遇到的问题。
答案 0 :(得分:0)
首先在第11行,您将 $ result 存储在一个数组中。
public array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
它看起来像这样(或多或少):
array('id' => '123',
'0' => '123')
你应该尝试:
$query->bindParam("id_img", $result[0]);
因此,您将在查询中将字符串作为变量。
我建议您在 $ result 中存储抓取数据后使用var_dump($result)
,这样您就可以更好地查看有关变量的最新信息。
答案 1 :(得分:0)
如果有多个可能的记录,您可能需要另一个foreach over $ result。 最重要的是尝试重现你如何做到下面的foreach。更改“id_img”中的引用,$ result);所以$ result元素就像$ data ['id_img']
-Nigel Ren