在PHP数组中查找结果

时间:2013-06-25 09:16:16

标签: php mysql arrays

我试图从mysql表中找出我所有的“喜欢”并把它们放到一个数组中,但我真的不确定我是否正确,因为我不断得到“错误的数据类型”错误。 这是我的代码:

<?php
$check_like_sql = "SELECT * FROM posts WHERE type = 'Like' && poster = '$yourid'";
$check_like_res = mysqli_query($con, $check_like_sql) or die (mysqli_error());
if(mysqli_affected_rows($con)>0){
    while($likes = mysqli_fetch_assoc($check_like_res)){
        $yourlike = $likes['media'];    
    }
    $likearray = mysqli_fetch_array($con, $yourlike); 
}
?>
<?php
if(in_array($likearray, $postid)) {
            $likethis = "<a href=\"php/unlike.php?poster=$yourid&post=$postid\">Unlike</a> . ";
        }
        else if($posttype == "Like"){
            $likethis = "";
        }
        else{
            $likethis = "<a href=\"php/like.php?poster=$yourid&lat=$yourlat&lon=$yourlon&like=$postid&user=$postusername\">Like</a> . ";
        }
?>

有人可以解释可能存在错误的地方吗?我对这种PHP编码很新。感谢

3 个答案:

答案 0 :(得分:1)

您正在覆盖$yourlike,因此请先对其进行初始化。此外,mysqli_fetch_array无需删除该部分。

$yourlike = array();
if(mysqli_affected_rows($con)>0){
    while($likes = mysqli_fetch_assoc($check_like_res)){
        $yourlike[] = $likes['media'];    
    }
    //$likearray = mysqli_fetch_array($con, $yourlike);  // remove this part
}

修改

更改此

if(in_array($likearray, $postid))

if(in_array($postid , $yourlike))

答案 1 :(得分:0)

$yourlike不是mysqli_result

替换此行

$likearray = mysqli_fetch_array($con, $yourlike);

这一个

$likearray = mysqli_fetch_array($con, $check_like_res);

答案 2 :(得分:0)

你正在使用mysqli_fetch_array不正确。第一个参数是结果,第二个参数是要返回的类型

$result = mysqli_fetch_array($query_result,MYSQLI_ASSOC);

然而,看起来你正在使用它,因为你已经提取了一个关联,你不能只删除该行     $ likearray = mysqli_fetch_array($ con,$ yourlike);

并更改

$yourlike = $likes['media'];

$yourlike[] = $likes['media'];

if(in_array($likearray, $postid)) {

if(in_array($yourlike, $postid)) {