2011-12-28 14 views
0

私は特定の項目に投票したかどうかを判断し、それに応じて投票アイコンの画像を変更しようとしています。 MySQLのin_array関数 - 無効な2番目の引数

$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値です。上記のクエリで見られる 'ratings'テーブルは、ユーザーID、イメージID、集計(この場合は1、likeを表す)のような投票を格納する場所です。ここで私に迷惑を与えているin_array機能は次のとおりです。

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

私は、次のエラーメッセージが出てい:

警告:in_array()[function.inアレイ]:第二のために間違ったデータ型内の引数(ファイル名)ライン上の

+0

あなたは2番目のパラメータとして配列を渡していません。 – alex

答えて

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

驚くばかり!私はそれが私の配列に混乱していると感じていました。私はあなたの答えをすぐに選択してくれます。 –

+0

あなたはそれを完全に理解していますか?最初のバージョンは意味をなさないが、それは基本的にはタイプミスまたは「ダム」ミスのようだ。 –

+0

私はちょっと恥ずかしいですが、MySQLの配列は私を邪魔してしまいます。私はなぜそれが配列であるかを判断するために '[] 'を必要としたことをよく理解してから、関数内でそれをそのまま使用します。私は変数が '$ row_likes ['imageid']'を配列として保存していると思っただけです。 –

関連する問題