Поиск Юзеров

570
.
Z3RO
Ares* (08.01.2011/22:48)
я это имел ввиду. если и делать - то так.
Тю, дык нужно всего-лишь при SQL запросе делать так: SELECT * FROM `users` WHERE `dayb` <= $do OR `dayb` >= $ot
Да и всё.
.
-=T-34=-, я писал что сложно не про город, а то что шансы найти кого то по такой форме, при малом количестве юзеров, практически равны 0,0
Много условий... Если у тебя 50 человек, то хватит возраста и пола хотя если у тебя и 200 человек, все равно много лишних условий
P.S. Это лично мое мнение
.
Дык, нужно ведь сначала дазу городов и населенных пунктов достать, или т.с планирует ввод города сделать обычным текстовым полем ..
.
-=T-34=-
Ares* (08.01.2011/22:56)
надо много чего. а в стандарте текстовое поле. на него и делать)
Кстати насчет базы, ниукого нету случайно? Нужна не только Россия..
ща гляну была гдето тока не помню где ! если на Буке то скину еси на компе то нет..!))) комп долеко... за пару тясяч КМ
.
Ares* (08.01.2011/22:54)
Надо будет маленькую функцию написать (как один из быдловариантов).
Наподобие такой, как есть для 3.2.?

function calc_age($d, $m, $y) {
    ////////////////////////////////////////////////////////////
    // Функция подсчета возраста по дате рождения              //
    ////////////////////////////////////////////////////////////
$age = date('Y') - $y;
$_m = date('m');
if($_m < $m || ($_m == $m && date('d') < $d))
$age--;

return $age;
}
.
L!MP
Ares* (08.01.2011/22:56)
надо много чего. а в стандарте текстовое поле. на него и делать)
Кстати насчет базы, ниукого нету случайно? Нужна не только Россия..
я гдето с месяц назад, делал поиск со всеми свистелками типа онлай/не онлайн, возраст от/до, фото есть/нет + место проживания по зараннее созданной базе НП.

Вот такой конструктор получился :
case 'search_result' :
    
        if (empty($_SESSION['search_param']) || sizeof($_SESSION['search_param']) == 0)
            die (header('location: /members/search'));

        $search_param = $_SESSION['search_param'];

        $end = false;
        $sql = '';

        if ($search_param[0]) {
            $sql .= ' WHERE sex = ' . abs((int)$search_param[0]);
            $and = true;
        }

        if ($search_param[1]) {
            $sql .= ($and) ? ' AND' : ' WHERE';
            $sql .= ' born_y <= ' . (date('Y') - (int)$search_param[1]);
            $and = true;
        }

        if ($search_param[2]) {
            $sql .= ($and) ? ' AND' : ' WHERE';
            $sql .= ' born_y >= ' . (date('Y') - (int)$search_param[2]);
            $and = true;
        }

        if ($search_param[3]) {
            $sql .= ($and) ? ' AND' : ' WHERE';
            $sql .= ' avatar = ' . (int)$search_param[3];
            $and = true;
        }

        if ($search_param[4]) {
            $sql .= ($and) ? ' AND' : ' WHERE';
            $sql .= ' visit >= ' . (CURRENT_TIME - 300);
            $and = true;
        }

        if ($search_param[5] && ($search_param[5][0] == 1 || $search_param[5][0] == 2 || $search_param[5][0] == 3)) {
            $sql .= ($and) ? ' AND' : ' WHERE';
            $sql .= ' geo_id_' . (int)$search_param[5][0] . ' = ' . (int)$search_param[5][1];
        }

        $begin = ($pg - 1) * $set['req_on_page'];
        $all = mysql_result(mysql_query("SELECT COUNT(*) FROM members " . $sql), 0);
        if ($all) {
            $req = mysql_query("SELECT * FROM members " . $sql . " ORDER BY rating DESC LIMIT " . $begin . ", " . $set['req_on_page']);

            while ($row = mysql_fetch_assoc($req))
                $row_array[] = $row;

            $view->set('row_array', $row_array);
            $view->set('all', $all);
            $view->set('pagination', pagination('members/search_result', $pg, $all));
            $view->set('content', $view->render('search_result'));
            $view->set('title', 'Результаты поиска');
        } else {
            $view->set('content', $view->render('search_result_empty'));
            $view->set('title', 'Результаты поиска');
        }

        break;


З.Ы: а базу населенных пунктов я парсил с мамбы
.
Ares* (08.01.2011/22:54)
dayb это ж день..
Там просто будет по году.. то есть например я указал 20 лет. сейчас июнь. а мне выведет и тех кто в феврале и тех кто октябре..
Надо будет маленькую функцию написать (как один из б
Нихрена не нужно больше писать. Нужно перевести $do и $ot в UNIXSTAMP формат и всё. Кста, эти переменные должны быть переведены в дату. Можно вот так зделать:

$do .= ($do - '1970')*31536000;
.
Ares* (08.01.2011/22:56)
надо много чего. а в стандарте текстовое поле. на него и делать)
Кстати насчет базы, ниукого нету случайно? Нужна не только Россия..
У меня есть. Держи.
Прикрепленные файлы:
.
Ares* (08.01.2011/22:56)
Кстати насчет базы, ниукого нету случайно? Нужна не только Россия..
посмотри это
Прикрепленные файлы:
.
В той базе, что я скинул есть Украина, Росия, Белорусь и остальные страны только названия без городов. Вроде так.
Всего: 24