Список форумов Жопно-Сортирный Форум Жопно-Сортирный Форум
Срать - естественная потребность. Срите сколько вылезет
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Главная

Галерея

Онлайн базы.

 
Начать новую тему   Ответить на тему    Список форумов Жопно-Сортирный Форум -> Программинг
Предыдущая тема :: Следующая тема  
Автор Сообщение
ipse



Зарегистрирован: 02.11.2007
Сообщения: 10

СообщениеДобавлено: Пт Ноя 02, 2007 13:30    Заголовок сообщения: Онлайн базы. Ответить с цитатой

Делаем из телефонной базы 2006 онлайн версию.
Скрипт для запихивания всего этого в мускуль
Код:
#!/usr/bin/perl -w
 
 use XBase;
 use DBI;
 use Text::Iconv;
 
 my $table = new XBase "Phone.dbf" or die XBase->errstr;
 $converter = Text::Iconv->new("cp1251", "utf-8");
 $dbh = DBI->connect("DBI:mysql:phone:localhost:3306", "login", pass);
 $dbh->do("SET NAMES utf8");
 my $cursor = $table->prepare_select();
     while (my @data = $cursor->fetch) {
         my $name = $converter->convert("$data[1]");
         my $adress = $converter->convert("$data[2]");
         $name =~ s/['"\\]/`/g;
         $adress =~ s/['"\\]/`/g;
         $sql = "INSERT INTO
                 phone
                (phone,name,adress)
                 VALUES
                ('$data[0]','$name','$adress')";
         $dbh->do($sql);
     }
 $dbh->disconnect();


Web форма
Код:
<form><br>

 
  <table>

    <tbody>

      <tr id="trname">

        <td class="postblock">
        <select>
        <option>☎ Номер</option>
        <option>❁ &nbsp;Имя</option>
        <option>☛ Адрес</option>
        </select>

        </td>

        <td><input></td>

        <td> <input></td>

      </tr>

    </tbody>
  </table>

</form>


поисковик

Код:
#!/usr/bin/perl -w
 
 use strict;
 use DBI;
 use CGI qw(:standard escapeHTML);
 use Switch;
 use utf8;
 use encoding "utf8";
 
 my $dbh = DBI->connect("DBI:mysql:phone:localhost:3306", "login", pass);
 $dbh->do("SET NAMES utf8");
 
 my ($сообщ,$id,$phone,$name,$adress,@найдено,$infa,$совпадений);
 my $выбор = param('spisok');
 my $слово = param('text');
 if ($выбор eq 'phone') {
    if ($слово =~ /^(\+7|8)?\d{10}$/ || $слово =~ /^\d{6}$/) {
       $слово =~ s/(\+7|8)?(\d{10})/$2/;
    } else {
       $сообщ = "Неверный номер!\n";
    }
 }
 if (!$сообщ) {
    my $sql = "SELECT
               id,
               phone,
               name,
               adress
               FROM
               phone
               WHERE
               $выбор LIKE '%$слово%'";
    my $sth = $dbh->prepare($sql);
    $sth->execute();
    $sth->bind_columns(\$id, \$phone, \$name, \$adress);
    $совпадений = $sth->rows();
    utf8::decode($name);
    utf8::decode($adress);
    if ($совпадений > 20) {
       $сообщ = "Слишком много совпадений, увеличьте критерий запроса<br>Совпадений: $совпадений<br>";
    } elsif ($совпадений == 0) {
       $сообщ = "Ничего не найдено\n";
    } else {
       while ($sth->fetch()) {
          $infa = "<b>Телефон:</b> $phone<br><b>Имя:</b> $name<br><b>Адрес:</b> $adress<br>";
          push (@найдено, $infa);
       }
    }
 
    $sth->finish;
    $dbh->disconnect();
 }
 
 print "Content-type: text/html; charset=UTF-8\n\n";
 print <<HTML;
 <body>
 <table border="1" cellpadding="2" cellspacing="2">
   <tbody>
 HTML
 if (!$сообщ) {
    foreach (@найдено) {
       print "<tr><td>$_</td></tr>";
    }
 } else {
    print "<tr><td>$сообщ</td></tr>";
 }
 print <<HTMLEND;
 </tbody>
 </table>
 <br>
 </body>
 HTMLEND

_________________
Люблю повеселиться, особенно посрать.


Последний раз редактировалось: ipse (Пт Ноя 02, 2007 19:53), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
YURBAN
Алкаш-модератор


Зарегистрирован: 18.03.2007
Сообщения: 563
Откуда: ОТ ТУДА БЛЯДЬ

СообщениеДобавлено: Пт Ноя 02, 2007 17:16    Заголовок сообщения: Ответить с цитатой

А где Action для Web формы? Very Happy
_________________
АААА БЛЯЯДЬЬ
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
bee
Админ c яйцами


Зарегистрирован: 18.03.2007
Сообщения: 727
Откуда: Из жопы

СообщениеДобавлено: Пт Ноя 02, 2007 17:36    Заголовок сообщения: Ответить с цитатой

Код:
my $table = new XBase "Phone.dbf" or die XBase->errstr;
 $converter = Text::Iconv->new("cp1251", "utf-8");

Конвертнуть базу FoxPro в MySQL дело благородное Very Happy Very Happy
Но ANSI можно было оставить Confused


Код:
my $sql = "SELECT
               id,
               phone,
               name,
               adress
               FROM
               phone
               WHERE
               $выбор LIKE '%$слово%'";


А нахуй поле id, если всего одна таблица? Confused

И LIKE лучше задавать как '$слово%'. По середине слова херова искать, совпадений хуеву тучу выдаст!
_________________
Хер, шлибы нах !!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ipse



Зарегистрирован: 02.11.2007
Сообщения: 10

СообщениеДобавлено: Пт Ноя 02, 2007 19:46    Заголовок сообщения: Ответить с цитатой

>8< Bee писал(а):

Но ANSI можно было оставить Confused

Я категорически против сотни кодировок, хватит уже всем в них путаться, пора всем переходить на юникод Smile

Цитата:
А нахуй поле id, если всего одна таблица? Confused
Таблица пока одна, но на будущее намечается таким-же образом заебенить базу гибдд в эту же базу.

Цитата:
И LIKE лучше задавать как '$слово%'. По середине слова херова искать, совпадений хуеву тучу выдаст!

Наоборот мне показалось так удобней искать фамилию со словом хуй, пусть даже посередине Smile
Кстати вот в действии http://ipse.zapto.org/phone.html Только особо не грузите, канал узкий Smile
_________________
Люблю повеселиться, особенно посрать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ipse



Зарегистрирован: 02.11.2007
Сообщения: 10

СообщениеДобавлено: Пт Ноя 02, 2007 19:54    Заголовок сообщения: Ответить с цитатой

YURBAN писал(а):
А где Action для Web формы? Very Happy

что-то он нихочет сюда постицо
Код:
form target="_top" id="postform" action="/cgi-bin/phone.pl" method="post" enctype="multipart/form-data"

_________________
Люблю повеселиться, особенно посрать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
bee
Админ c яйцами


Зарегистрирован: 18.03.2007
Сообщения: 727
Откуда: Из жопы

СообщениеДобавлено: Пт Ноя 02, 2007 22:43    Заголовок сообщения: Ответить с цитатой

Цитата:
http://ipse.zapto.org/phone.html


Зачет!! Буду юзать Smile
_________________
Хер, шлибы нах !!!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
DoS
Срёт в каментах


Зарегистрирован: 22.03.2007
Сообщения: 188
Откуда: The Null Squad

СообщениеДобавлено: Сб Ноя 03, 2007 2:27    Заголовок сообщения: Ответить с цитатой

ipse писал(а):

Я категорически против сотни кодировок, хватит уже всем в них путаться, пора всем переходить на юникод Smile


В последние дни я так с этими кодировками заебался... iconv не работает! Все, отныне я тоже сторонник юникода!
_________________
Я сказал.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
YURBAN
Алкаш-модератор


Зарегистрирован: 18.03.2007
Сообщения: 563
Откуда: ОТ ТУДА БЛЯДЬ

СообщениеДобавлено: Вс Ноя 04, 2007 1:32    Заголовок сообщения: Ответить с цитатой

ipse писал(а):
YURBAN писал(а):
А где Action для Web формы? Very Happy

что-то он нихочет сюда постицо
Код:
form target="_top" id="postform" action="/cgi-bin/phone.pl" method="post" enctype="multipart/form-data"

Бля а там сервер не ахуевает от такой большой базы? Rolling Eyes
_________________
АААА БЛЯЯДЬЬ
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
ipse



Зарегистрирован: 02.11.2007
Сообщения: 10

СообщениеДобавлено: Вс Ноя 04, 2007 15:31    Заголовок сообщения: Ответить с цитатой

Конечно ахуевает, в таблице 1048770 записей. Поэтому надо еще поработать над поисковым алгоритмом.
_________________
Люблю повеселиться, особенно посрать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Жопно-Сортирный Форум -> Программинг Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Rambler's Top100 Powered by phpBB
© 2001, 2005 phpBB Group
Русская поддержка phpBB