|
|
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)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/47313a5f8146.html, оценка из 5, голосов 10
|