Во-первых, заменить код с некоторой погрешностью предотвращающей методы, как так!
$sql = "SELECT video_id FROM videos WHERE displayable='y' ORDER BY votes desc LIMIT 0,3";
if(false != ($result = mysql_query($sql))
{
$row = mysql_fetch_assoc($result); //Dont need the @ restraint as the result is not false above.
//Also to get associate keys you need to use mysql_fetch_assoc
if($video->getProperty('video_id') == $row['video_id'])) //Remove the in array as your directly comparing the to entities with ==
{
//Match
}else
{
//Video does not match
}
}
Ваша главная проблема была mysql_fetch_array(), пожалуйста, исследовать различия с mysql_fetch_array() и mysql_fetch_assoc();
-
Edit: Путь я бы
//Change the query and the loop way.
$sql = "SELECT video_id FROM videos WHERE displayable='y' AND video_id != '".(int)$video->getProperty('video_id')."' ORDER BY votes desc LIMIT 0,3";
if(false != ($result = mysql_query($sql))
//Use the @ restraint if you have E_NOTICE on within E_Reporting
{
while($row = mysql_fetch_assoc($result))
{
//Print the $row here how you wish for it to be displayed
}
}else
{
//We have an error?
echo '<strong>Unable to list top rated videos, please check back later.</strong>'
}
}
да, спасибо, я знаю различия, вижу важность. – kalpaitch
Другой способ, которым вы можете это сделать, - это модифицировать запрос, чтобы выбрать hte top 3 bar для текущего видео, так что '$ sql =" SELECT video_id FROM videos WHERE displayable = 'y' AND video_id! = '". (Int) $ video-> getProperty ('video_id'). "'ORDER BY votes desc LIMIT 0,3"; 'тогда вам не понадобится инструкция if() для удаления текущего видео из списка 3 лучших. – RobertPitt