我试图从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编码很新。感谢
答案 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)) {