он вернет тебе одну строку (минимум) со всеми полями (столбцами) твоей таблицы так как ты делаешь SELECT * FROM blocks согласен с DarkElf
Вообщем я лично решил эту проблему раз и навсегда и без лишних запросов к базе данных. PHP: <?php /* * 1 в memcache означает что бана нет * 2 - означает что бан есть * $announce = true/false - собственно announce скрипт это или WEB часть трекера * $nip - integer представление IP адреса */ $nip = ip2long($ip); $banned = $mem->get('ban'.$nip); if ($banned === false){ $res = mysql_query('SELECT * FROM bans WHERE first <= '.$nip.' AND last >= '.$nip); if (mysql_num_rows($res)){ $mem->set('ban'.$nip, 2); $banned = 2; }else{ $mem->set('ban'.$nip, 1); $banned = 1; } } if ($banned == 2){ if ($announce === true){ header("HTTP/1.0 403 Forbidden"); die('You are banned! Write to [email=banlv@mail.ru]banlv@mail.ru[/email] for any questions.'); }else{ header("HTTP/1.0 403 Forbidden"); header('Content-Type: text/html; charset=windows-1251'); die('Сообщение о бане в HTML варианте'); } } ?> это в dbconn функции движка TBDev. В скрипте управления банами снятие/установка бана записываеться так-же и в memcache, что бы бан действовал немедленно.