MySQL in_array函数 - 第二个参数无效

时间:2011-12-28 04:38:29

标签: php mysql arrays

我正在尝试确定用户是否对某个项目进行了投票,并相应地更改了投票图标的图像。

$user_likes = mysql_query("SELECT * from ratings WHERE userid = '$uid' AND aggregate = 1");
while ($row_likes = mysql_fetch_array($user_likes)) {
$row_likes['imageid'] = $likes_array;
}

现在在我的内容中,我有一个PHP foreach,它返回每个提交的菜单项(用户可以投票),$image['idnum']是该单个图像的ID值。在上面的查询中看到的“评级”表是我存储这样的投票的地方:用户ID,图像ID,聚合(在这种情况下为1,表示类似)。这是给我带来麻烦的in_array函数:

if (in_array($image['idnum'], $likes_array)) {
    echo 'vote_triangle.png';
}

我收到以下错误消息:

警告:in_array()[function.in-array]:第 33 (文件名)中第二个参数的错误数据类型< BR />

1 个答案:

答案 0 :(得分:2)

我认为你有这个部分倒退:

while ($row_likes = mysql_fetch_array($user_likes)) {
    $row_likes['imageid'] = $likes_array; // ????
}

应该是:

// Initialize the array
$likes_array = array();

while ($row_likes = mysql_fetch_array($user_likes)) {
     $likes_array[] = $row_likes['imageid'];
}