2017-04-27 110 views
-1

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

这是php代码。 seach函数以btw的方式工作。

$_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

'if(!empty($ _ POST)){'为什么只在获取结果之前这样做?无论如何,你执行你的查询,但这是没有意义的,因为你试图绑定$ _POST的值。 – Twinfriends

回答

1

你的错误是:

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

这不是PHP合法的语法。

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

当您尝试执行这段代码,你会得到:

PHP的警告:非法串偏移 '测试2' 在

可悲的是,我可以用重现米不知道你试图用这行代码实现。无论如何,你的SQL结果是一个一维数组。您的代码就像您使用二维数组一样工作。您只能使用$row["postImageUrl"]$row["postID"]您不能直接使用两者。

如果您更好地描述一下您尝试使用此行的方式,我可以帮助您。但实际上我不知道你的想法是什么。

+0

我只是想让用户点击一个图像,并重定向到该图像的详细页面。图像可以通过搜索功能找到(工作原理)。只需忽略$ row [“postID”],那只是一些尝试。 –

+2

@ArneBerckmans如果你想让人们忽略你的代码块,就把它留下。你在这里发布了很多代码。如果你想用stackoverflow来帮助你,试着缩小你的问题的范围,并尽可能简短地描述它。这样做会更容易帮忙。 – Jorre