У меня есть следующая вещь:
Из базы в цикле вытягиваются данные, человеки, за которых можно проголосовать за или против. Ограничение только по айпи. Так вот, я задумал сделать так, что если пользователь уже голосовал, то сама кнопка для голосования не будет ему показываться, но я никак не могу сообразить как организовать это все дело так, чтобы не использовать запросы каждый раз в самом цикле, как это организовано сейчас у меня.
Подскажите, пожалуйста, как сделать так, чтобы выбрать из базы сначала все айпи-адреса и уже только потом вложенным циклом проверять или он есть в списке? То есть как уменьшить количество запросов?
Свой код привожу ниже:
<?php
$result = mysql_query("SELECT * FROM people ".$where." ORDER ".$sortby."");
$myrow = mysql_fetch_array($result);
if (mysql_num_rows($result) > 0)
{
$realip = getenv(HTTP_X_FORWARDED_FOR);
if ($realip == ''){$realip = $_SERVER['REMOTE_ADDR'];}
do
{
if ($myrow['avatar'] == '-')
{
if ($myrow['sex'] == '1') {$avatar = 'images/man.png';}
if ($myrow['sex'] == '0') {$avatar = 'images/woman.png';}
}
if ($myrow['avatar'] != '-') {$avatar = "timthumb.php?src=".$myrow['avatar']."&a=t&w=195&h=200&q=100";}
$resultfindip = mysql_query("SELECT * FROM votestat WHERE peopleid='$myrow[id]' AND likedis='like' AND ipadress='$realip'",$db);
if (mysql_num_rows($resultfindip) > 0) {$likehref = "";}
else {$likehref = "<a class='like' name='$myrow[id]'>ХОРОШО! (<strong>$myrow[likes]</strong>)</a>";}
$stroka='';
if(($i+1)%4==0) $stroka='</tr><tr>';
printf ("
<td align='center' valign='middle' width='200'>
<img src='$avatar' />
<br />
<strong>%s</strong><br />
%s<br />
<a href='comments.php?id=%s' class='comments fancybox.iframe'><img title='Отзывы' src='images/comments.png'></a>
<a href='add_comment.php?id=%s' class='addcomment fancybox.iframe'><img title='Добавить отзыв' src='images/addcomments.png'></a>
<br>
$likehref
<a class='dislike' name='%s'>ПЛОХО! (<strong>%s</strong>)</a>
</td>
$stroka
",$myrow["posada"],$myrow["name"],$myrow["id"],$myrow["id"],$myrow["id"],$myrow["dislikes"]);
$i++;
}
while ($myrow= mysql_fetch_array($result));
}
else
{
echo '<br /><p align="center"><strong>У цій групі поки нікого немає!</strong></p>';
}
?>