Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

18.12.2005, 11:01
|
|
Постоянный
Регистрация: 12.08.2004
Сообщений: 447
Провел на форуме: 1210614
Репутация:
279
|
|
Онлайн база номеров
Есть онлайн база http://icq.xss.ru/
Кто может сделать такую же,но чтоб при одном запросе выдавала список по годам,то есть,я задал номер 365056 а мне выдало
2002: 365056:me@dyra.com
2003: none
2004: 365056:y_ne@dyra.com
2005: xрен
вот так 
эту базу мы повесив в разделе асекью
|
|
|

18.12.2005, 13:53
|
|
Познавший АНТИЧАТ
Регистрация: 21.11.2004
Сообщений: 1,137
Провел на форуме: 2487541
Репутация:
761
|
|
В принципе ничего сложного. Можно сделать базу структурой:
uin, 2002, 2003,2004, 2005 где в годах будет мыло :]
Если я смогу вытянуть эти базы (у меня модем), то попробую сделать.
|
|
|

18.12.2005, 14:07
|
|
Постоянный
Регистрация: 12.08.2004
Сообщений: 447
Провел на форуме: 1210614
Репутация:
279
|
|
сделай просто на тестовых базах.то есть создай наобуум несколько строк
типа :
234232:y_ne@dyra.com
888199:y8908@d890ra.com
|
|
|

18.12.2005, 20:31
|
|
Познавший АНТИЧАТ
Регистрация: 21.11.2004
Сообщений: 1,137
Провел на форуме: 2487541
Репутация:
761
|
|
тестируем
Уже удалось кое-что сделать а именно: - Я сгенирировал базу 100001-999999
- Для каждого уина есть емайлы за определённые года 2000 2003 2004 2005
- можно задавать маски * или ? (как http://icq.xss.ru/)
- Все запросы кешируются (при повторном запросе sql сервер не задейсвован)
Правда поиск по email я ещё не добавил, нужно придумать маску
Думаю допустимыми символами будут: a-z 0-9 _ - .
Вроде, если емайл не входит в эту маску, то он не может реально существовать (если я неправ - поправте!)
Все емайлы сгенирированны! Любой совпадение есть чудо! 
Думаю завтра доделаю поиск по емайлам и начну добавлять базы. (нашёл только за 2003 год и то с левой кодировкой  )
Вот такие пироги...
http://mailovka.ru/icq/
|
|
|

18.12.2005, 21:39
|
|
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме: 941818
Репутация:
569
|
|
Нужно сделать обязательно постраничный вывод, я думаю. Потому как наблюдать все сразу и неудобно и БД грузит, даже с кешами. Постранично, соответственно, лимитами делать. И вообще подумай над кешами ведь номера будут добавляться постоянно. поиск лучше юзать встроенный в MySQL, очень экономичный к ресурсам, тем более поля для поиска очень короткие. И начиная с 4-ой MySQL поиск там очень даже богатый вшитый, с кучей правил итп.
А вообще на самом то деле, задачи тут простейшие, можно было бы и на текстовиках сделать =)
|
|
|

19.12.2005, 12:48
|
|
Познавший АНТИЧАТ
Регистрация: 21.11.2004
Сообщений: 1,137
Провел на форуме: 2487541
Репутация:
761
|
|
поиск лучше юзать встроенный в MySQL
Не очень понимаю как это, я делаю обычный поиск типа:
Код:
SELECT * FROM uins WHERE uin=667033;
И вообще подумай над кешами ведь номера будут добавляться постоянно.
(Это кеш страници, а не кеш запроса к БД)
Кеш работает в течении часа, потом странице пресобирается (Smarty рулит  )
Нужно сделать обязательно постраничный вывод, я думаю.
Вот это как-раз и проблемно:
Если делать постраничный вывод, то нам ведь всё-равно нужно как-то определить кол-во страниц? :] Тоесть запрос будет полноценный.
Можно сделать так:
Ограничить вывод в 100 уинов (LIMIT 0 , 101)
Добавить поле, которое задаёт значение "откуда начинать"
Например по запросу всего 500 уинов, нам надо узнать промежуток от 300-ого уина, тогда мы в это поле вводим 300 (запрос будет LIMIT 300, 101)
Теперь почему 101, если вывод 100.
101-ого уина не будет в выводе, но если у него есть значение, то значит есть и следущая страница :]
|
|
|

19.12.2005, 13:45
|
|
Постоянный
Регистрация: 19.09.2005
Сообщений: 408
Провел на форуме: 3730496
Репутация:
519
|
|
Сообщение от fucker"ok
В принципе ничего сложного. Можно сделать базу структурой:
uin, 2002, 2003,2004, 2005 где в годах будет мыло :]
Если я смогу вытянуть эти базы (у меня модем), то попробую сделать.
Этот структура рабочая но неправильная. Неправильная потому что когда появятся новые базы (2006 и 2007 годов) ты должен будешь модифицировать структуру БД (добавляя новые атрибуты 2006, 2007).
Лучше всего воспользоватся структурой вида:
uin, year, mail - где поля year и uin ключевые.
Сразу отпадает проблема поиска по мылу
|
|
|

19.12.2005, 20:50
|
|
Познавший АНТИЧАТ
Регистрация: 21.11.2004
Сообщений: 1,137
Провел на форуме: 2487541
Репутация:
761
|
|
Deem3n®: Да возможно это и не лучший вариант, дабы я не очень силён в SQL, но мой способ простой и понятный (для меня).
Да, когда будут появлятся новые базы за новый год, то это дело прийдётся немного править (добавить пару строк), но вся прелесть в том, что раз в год можно выделеть несколько минут на это 
Если я тебя правельно понял, то хочешь хранить в базе уины так (напиши правельно понял, или нет):
uin year mail
667033 2001 vasya@mail.ru
667033 2002 peta@mail.ru
и тд
В принципе у меня скрипт готов. Осталось только придать дизайн и добавить кнопку "к следущей странице" (сегодня сделаю, но не успею выложить инет до 8) Ну и добавлять базы...
Поиск емайла может быть по маске и за определённый год (не забывайте ставить галочку "год" (можно поставить все) )
Ещё есть идея собрать все ники и uid юзеров форума у кого 6-ти знаки, тогда в дополнительном поле будет имя и ссылка на профиль (если администрация поддержит, то будет класно  )
Тестируем! О багах постим сюда
http://mailovka.ru/icq
Последний раз редактировалось fucker"ok; 19.12.2005 в 20:55..
|
|
|

20.12.2005, 13:03
|
|
Постоянный
Регистрация: 19.09.2005
Сообщений: 408
Провел на форуме: 3730496
Репутация:
519
|
|
ну в принципе так, но для экономии сделай тип атрибута year - tinyint:
Код:
CREATE TABLE base
(
uin INT,
year TINYINT,
mail VARCHAR(40)
);
ALTER TABLE base
MODIFY COLUMN `year` TINYINT,
MODIFY COLUMN `uin` INT,
ADD PRIMARY KEY (uin, year);
uin year mail
667033 99 fedya@mail.ru
667033 01 vasya@mail.ru
667033 02 peta@mail.ru
PS:
для чего предназначена опция "Вывод от:"?
|
|
|

21.12.2005, 13:47
|
|
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,149
Провел на форуме: 941818
Репутация:
569
|
|
В MySQL сущесвтует собственный поиск, в мане прочти о MATCH() AGAINST() вроде так. работает. Хотя тут можно и обойтись обычным LIKE с его % и ?. Создавать кеш на час... да, возможно это как вариант, только при добавлении нового номера задерка вывода будет примерно пол часа. В принципе это не критично. Насчет постраничного вывода, что может быть проще? Маленький запро SELECT COUNT() не сильно загрузит сервак. Зато будет очень удобно листать, например, по 50 номеров.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|