试图将数组转换为字符串,但不确定如何

时间:2018-05-28 20:56:15

标签: php html arrays session

<?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: &dollar; " . 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。

评论中有人提到了一个可能的答案,但即便如此,我也无法理解如何解决我遇到的问题。

2 个答案:

答案 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