The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"perl DBI"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"perl DBI"
Сообщение от logka emailИскать по авторуВ закладки(??) on 02-Апр-04, 19:03  (MSK)
ХЕлп плз!!!!
пишу скрипт который с таблички в MySQL должен вытянуть все значения...
таблица имеет только одно поле, так что это есть хорошо.... на выходе какбы надо получить масив....
написал вот что
#!/usr/bin/perl
use DBI;
while (<STDIN>){
    $message .= $_;
  }
($header, $mess) = split(/\n\n/, $message, 2);
@header = split (/\n/, $header);
@telo = split (/ / ,$mess);
$from = '';
foreach (@header)
  {
    if (($_ =~/^from:/i) && ($from eq '')){$from= $_; }
  }
$from =~ s/^from: //ig;
  if ($from =~ /<.*>/)
    { $from =~ s/.*<(.*\@.*\..*)>/$1/;}
  elsif ($from =~ /\(.*\)/)
    {$from =~ s/(.*\@.*\.\*).*/$1/g; }
my $db = DBI->connect('DBI:mysql:data:10.0.0.1' ,user ,pass);
my $adr = $db->prepare("select * from amail");
$adr->execute;
my @alladr = $adr->fetchrow_array;
open(MAIL, "|/usr/sbin/sendmail -t");
     print MAIL "Reply-to: test\@example.com.ua\n";
     print MAIL "To: $from\n";
     print MAIL "From: test\@example.com.ua\n";
     print MAIL "Subject: transport traffic\n\n";
foreach my $adr (@alladr) {
chomp ($adr);
     print MAIL " --->>> $adr\n";
}
close(MAIL);

в табличке набраны емаил адреса....
в ответе я получаю только первое значение..... почему?? что я не так делаю???  

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

  • perl DBI, A Clockwork Orange, 22:00 , 02-Апр-04, (1)
    • perl DBI, logka, 15:35 , 03-Апр-04, (3)
  • perl DBI, gennady, 22:40 , 02-Апр-04, (2)
    • perl DBI, logka, 15:37 , 03-Апр-04, (4)
    • perl DBI, logka, 16:57 , 03-Апр-04, (5)

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "perl DBI"
Сообщение от A Clockwork Orange Искать по авторуВ закладки on 02-Апр-04, 22:00  (MSK)
Что есть первое значение?
Обрабатывается только первая запись?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "perl DBI"
Сообщение от logka Искать по авторуВ закладки(??) on 03-Апр-04, 15:35  (MSK)
>Что есть первое значение?
>Обрабатывается только первая запись?


тоесть да.... если таблица имеет вид

user1@example.com
user2@example.com

то на вторую запись скрипт уже не смотрит.....
хотя я делаю
my $adr = $db->prepare("select * from amail");
$adr->execute;
my @alladr = $adr->fetchrow_array;

тоесть поидели функция fetchrow_array должна вернуть масив @alladr в котором будет вся таблица....

а уже с помощью цикла
foreach my $adr (@alladr) {
chomp ($adr);
     print MAIL " --->>> $adr\n";
}
я пробегаюсь по всем значениям масива по порядку..... и блин гдето гвоздь..... имхо я что то неправельно делаю в строке
my @alladr = $adr->fetchrow_array;

но вот что именно не могу понять.... мож гдето намутил.... ну этаж функция точно должна масив возвращать......

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "perl DBI"
Сообщение от gennady emailИскать по авторуВ закладки on 02-Апр-04, 22:40  (MSK)
>my @alladr = $adr->fetchrow_array;
>open(MAIL, "|/usr/sbin/sendmail -t");
>     print MAIL "Reply-to: test\@example.com.ua\n";
>     print MAIL "To: $from\n";
>     print MAIL "From: test\@example.com.ua\n";
>     print MAIL "Subject: transport traffic\n\n";
Вообще-то, как я понимаю, тут в цикле надо выбирать:
while(my @alladr = $adr->fetchrow_array){
     open(MAIL, "|/usr/sbin/sendmail -t");
     print MAIL "Reply-to: test\@example.com.ua\n";
     print MAIL "To: $from\n";
     print MAIL "From: test\@example.com.ua\n";
     print MAIL "Subject: transport traffic\n\n";
}
Хотя могу и ошибаться. Пример взят прямо из man DBI.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "perl DBI"
Сообщение от logka Искать по авторуВ закладки(??) on 03-Апр-04, 15:37  (MSK)
>Вообще-то, как я понимаю, тут в цикле надо выбирать:
>while(my @alladr = $adr->fetchrow_array){
>     open(MAIL, "|/usr/sbin/sendmail -t");
>     print MAIL "Reply-to: test\@example.com.ua\n";
>     print MAIL "To: $from\n";
>     print MAIL "From: test\@example.com.ua\n";
>     print MAIL "Subject: transport traffic\n\n";
>}
>Хотя могу и ошибаться. Пример взят прямо из man DBI.

хм шас попробую.........

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "perl DBI"
Сообщение от logka Искать по авторуВ закладки(??) on 03-Апр-04, 16:57  (MSK)
>Вообще-то, как я понимаю, тут в цикле надо выбирать:
>while(my @alladr = $adr->fetchrow_array){
>     open(MAIL, "|/usr/sbin/sendmail -t");
>     print MAIL "Reply-to: test\@example.com.ua\n";
>     print MAIL "To: $from\n";
>     print MAIL "From: test\@example.com.ua\n";
>     print MAIL "Subject: transport traffic\n\n";
>}
>Хотя могу и ошибаться. Пример взят прямо из man DBI.

да спасибо помогло %) точно в цикле надро вызывать ;)))

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру