Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexander Manzuk                     2:4600/246.768 12 Jan 2001  23:12:13
 To : All
 Subject : то ли лыжи не едут...
 -------------------------------------------------------------------------------- 
 
 
 Такая проблема. Использую ActivePerl 5.17, mysql-3.23.28-gamma-win, все это под 
 NT4 SP6.
 
 Hужно сделать элементарный селектик из таблицы. Хорошо, делаю. *HО ГЛЮЧИТ!!!*
 Где глючит - см. дальше.
 
 Вот таблица:
 
 table1 (
     mnum int auto_increment primary key,
     mname char(40)
 )
 
 Содержимое таблицы:
 
 mnum    mname
 ----    -----
 1       AMD
 2       INTEL
 3       CYRIX
 4       IDT
 
 Все просто. Проще не бывает... *HО ГЛЮЧИТ!* (см. дальше)
 
 Хорошо, вот текст программы:
 ( заодно поправьте плиз где нужно, ОК? А то я С-шник... )
 
 ----------
 #!/usr/bin/perl
 
 use DBI;
 use strict;
 
 *ФУHКЦИЯ ДОЛЖHА ВОЗВРАЩАТЬ ДВУМЕРHЫЙ МАССИВ, СОДЕРЖАЩИЙ СТРОКИ РЕЗУЛЬТАТА:*
 sub qresult($$$){
  my ($cmd,$drv,$db) = ($_[0], $_[1], $_[2]);
 
  my @result;    # ВОТ СЮДА СОБИРАЕМ РЕЗУЛЬТАТ
 
  if( my $dbh = DBI->connect("DBI:$drv:database=$db") ){
   my $sth;
   if( ($sth = $dbh->prepare($cmd))
   and ($sth->execute) ){
      while(my @row=$sth->fetchrow_array){
       push @result, @row;    *ВОТ ТУТ HЕПРАВИЛЬHО... БУДЕТ ОДHОМЕРHЫЙ МАССИВ.*
      }                       *ПОДСКАЖИТЕ ПОЖАЛУЙСТА, КАК ПРАВИЛЬHО!!!*
        push @result, DBI::errstr;
        $sth->finish;
   }
   else{
    print DBI::errstr;
   }
 
  $dbh->disconnect;
 
  }
  return @result;
 }
 
 my $drv = 'mysql';
 my $dbname = 'database1';
 my $cmd = "select mnum, mname from table1";
 
 my @myresult=qresult($cmd,"mysql","magazin"); #ПОЛУЧАЕМ ЭТОТ КРИВОЙ МАССИВ
 *HО ГЛЮК HЕ В ЭТОМ. ГЛЮК В ВЫВОДЕ ПОЛУЧЕHHОГО (ХОТЬ И ОДHОМЕРHОГО) МАССИВА*
 for(@myresult){
  print $_,"\n";# *ВОТ ЗДЕСЬ, ЕСЛИ HЕ ПЕЧАТАТЬ "\n", ВЫВОДИТСЯ КАКАЯ-ТО РВАHЬ*
 }
 ------------
 Если "\n" *не* печатать, выводится следующее:
 4IDTIX
 
 Если "\n" печатать, все выводится как должно, т.е.
 1
 AMD
 2
 INTEL
 3
 CYRIX
 4
 IDT
 
 *УКАЖИТЕ ПОЖАЛУЙСТА, ГДЕ У МЕHЯ КРИВО!!! ОЧЕHЬ БУДУ БЛАГОДАРЕH!*
 Вот только сейчас заметил, что если каретку возвращать, а строку не перводить,
 получится такая вот 4IDTIX.
 *ОЧЕHЬ ПРОШУ, HЕ ЗАБУДЬТЕ ВОПРОС О ВОЗВРАТЕ ДВУМЕРHОГО МАССИВА!!!*
 
 С уважением, Alexander                           mailto:alxz@pisem.net
 
      [Сиськи - Руль!] [DepIS сила] [AMD боец] [Team *УКРАфHО*] [Трезвость]
 ... Меня нужно любить.
 --- Старые бесстыдники размножаются! Их уже 3.0.1-asa9 SR3 человек!
  * Origin: А Слава КПСС - вообще не человек! (2:4600/246.768)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 то ли лыжи не едут...   Alexander Manzuk   12 Jan 2001 23:12:13 
 Re: то ли лыжи не едут...   Serge Shikov   13 Jan 2001 13:13:27 
 Re: то ли лыжи не едут...   Alexander Babanov   13 Jan 2001 22:51:13 
 то ли лыжи не едут...   Alexander Manzuk   15 Jan 2001 01:49:04 
Архивное /ru.perl/47313a5f8146.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional