2011-12-28 54 views
0

我試圖確定用戶是否對某個項目進行投票並相應地更改投票圖標的圖像。MySQL in_array函數 - 第二個參數無效

$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陣列]:錯誤的數據類型爲第二在線

+0

您還沒有傳遞數組作爲第二個參數。 – alex 2011-12-28 04:39:35

回答

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']; 
} 
+0

太棒了!我有一種感覺,這將是我的陣列搞砸了。我會盡快選擇你的答案。 – 2011-12-28 04:45:09

+0

你完全明白嗎?第一個版本沒有意義,看起來基本上是一個錯字或「愚蠢的」錯誤。 – 2011-12-28 04:47:46

+0

我有點尷尬,但MySQL陣列混淆了我的地獄。我更好地理解爲什麼我需要'[]'來確定它是一個數組,然後在函數中使用它。我只是認爲這個變量將'$ row_likes ['imageid']'存儲爲一個數組。 – 2011-12-28 04:53:08

相關問題