1

我试图从 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 编码很陌生。谢谢

4

3 回答 3

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))
于 2013-06-25T09:23:18.573 回答
0

$yourlike不是mysqli_result

替换此行

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

有了这个

$likearray = mysqli_fetch_array($con, $check_like_res);
于 2013-06-25T09:21:56.683 回答
0

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

$result = mysqli_fetch_array($query_result,MYSQLI_ASSOC);

但是看起来你使用不正确,因为你已经获取了一个 assoc,你能不能只删除行 $likearray = mysqli_fetch_array($con, $yourlike);

和改变

$yourlike = $likes['media'];

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

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

if(in_array($yourlike, $postid)) {
于 2013-06-25T09:22:36.967 回答