Всем привет!
У меня есть следующая вещь:
Из базы в цикле вытягиваются данные, человеки, за которых можно проголосовать за или против. Ограничение только по айпи. Так вот, я задумал сделать так, что если пользователь уже голосовал, то сама кнопка для голосования не будет ему показываться, но я никак не могу сообразить как организовать это все дело так, чтобы не использовать запросы каждый раз в самом цикле, как это организовано сейчас у меня.
Подскажите, пожалуйста, как сделать так, чтобы выбрать из базы сначала все айпи-адреса и уже только потом вложенным циклом проверять или он есть в списке? То есть как уменьшить количество запросов?
Свой код привожу ниже:
<?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>';
}
?>