点击图片查看详情页

时间:2017-04-27 11:04:02

标签: php

我试图让用户转到帖子详细信息页面。他们可以在搜索后找到这些图像。但我总是得到这个: 警告:非法字符串偏移' postID'在第106行的C:\ xampp \ htdocs \ eindwerk2 \ index.php中 警告:非法字符串偏移' postID'在第180行的C:\ xampp \ htdocs \ eindwerk2 \ index.php

这是php代码。搜索功能顺便说一下。

 $_SESSION['KEYWORD'] = array();
$error = '';
//$allResults2 = array();

if (isset($_POST['Find'])) {
try {

    $pdoConnect = new PDO("mysql:host=localhost;dbname=imdterest", "root", "");

} catch (Exception $exc) {
    echo $exc->getMessage();
    exit();
}

$postTags = $_POST['naam'];

//$pdoQuery = "SELECT * FROM posts INNER JOIN user ON posts.postUser = user WHERE postTags = :postTags";

$pdoQuery = "SELECT posts.postID, posts.postUser, posts.postImageUrl, posts.postDescription, user.firstname, user.lastname, user.userID FROM posts INNER 
  JOIN user ON posts.postUser=user.email WHERE postTags = :postTags;";

$pdoResult = $pdoConnect->prepare($pdoQuery);

$pdoExec = $pdoResult->execute(array(":postTags" => $postTags));

if(!empty($_POST)){
    while ($row = $pdoResult->fetch(PDO::FETCH_ASSOC)) {
        $_SESSION['KEYWORD'][] = $row['postImageUrl']['postID'];
        //$poster = $row['postID'];
        //$allResults2[] = $row['postUser'];
        //echo $postTags;


    }
}
else {
    echo 'no';
}

if(count($_SESSION['KEYWORD']) === 0) {
$error = "Sorry no results!";

 }

这是html

  <div class="search">
        <?php
        foreach ($_SESSION['KEYWORD'] as $imageLink){

            $postid = $imageLink['postID'];

         echo '<a href=\'./pinSearch.php?postid=$postid\'><img src="' . $imageLink . '"></a>';

        }





        /*foreach ($allResults2 as $imageUser){
            echo  '$imageUser';
        }*/
        ?>

        <div class="searchError"><?php echo $error; ?></div>



    </div>

1 个答案:

答案 0 :(得分:1)

您的错误来自以下代码:

$_SESSION['KEYWORD'][] = $row['postImageUrl']['postID'];

这不是PHP中的合法语法。您可以使用以下内容重现它​​:

<?php
$test = array(
    test1 => "Hello",
    test2 => "hello2"
    );
echo $test["test1"]["test2"];
?>

当您尝试执行此代码时,您会得到:

  

PHP警告:

中的非法字符串偏移'test2'

可悲的是,我不确定您尝试使用这行代码实现的目标。无论如何,你的SQL结果是一维数组。您的代码就像使用二维数组一样。您只能使用$row["postImageUrl"]$row["postID"]您不能直接使用它们。

如果你对这条线的尝试描述得更好,我可以帮到你。但实际上我不知道你的想法是什么。