🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52188

Re: perl - wyciąganie danych z bazy

#52188
From: MaRc
Date: Fri, 11 Mar 2011 09:19
94 lines
3282 bytes
W dniu 11.03.2011 09:43, Stachu 'Dozzie' K. pisze:
> Jeśli tak, to kto ci nakłamał że to tylko jeden wiersz?

przepraszam, mój błąd. przeklikałem się. miałem na myśli, że zwraca jedną 
kolumnę na wiersz.


> Jakoś ciężko mi w to uwierzyć.
$users = [1,2,3,4,5] - to jest coś co chciałem osiągnąć i myślałem, że tak 
powinno być, ale się jednak myliłem i stąd moje posty :)


> Wklej jeszcze raz stosowny fragment kodu,
> odbierz dane do $users i wklej wynik działania Data::Dumper na $users.

#v+
$sth = $dbase->prepare("SELECT id FROM users LIMIT 5");	
$sth->execute;
$ile_wierszy = $sth->rows();
print "Pobrałem $ile_wierszy \n";

$users = $sth->fetchall_arrayref();
print "Print Dumperem skalara \$users\n";
print Dumper($users);

$sth->execute;
@users = $sth->fetchall_arrayref();
print "Print Dumperem tablicy \@users\n";
print Dumper(\@users)
#v-

a to wynik:
#v+
Pobrałem 5
Print Dumperem skalara $users
$VAR1 = [
           [
             '1'
           ],
           [
             '2'
           ],
           [
             '4'
           ],
           [
             '5'
           ],
           [
             '6'
           ]
         ];
Print Dumperem tablicy @users
$VAR1 = [
           [
             [
               '1'
             ],
             [
               '2'
             ],
             [
               '4'
             ],
             [
               '5'
             ],
             [
               '6'
             ]
           ]
         ];

#v-

biorąc pod uwagę, że "$users = $sth->fetchall_arrayref();" to jak 
powinienem prawidłowo dostać sie do danych?

print "$users[0]->[0]"; nic mi nie drukuje
print "${$users[0]}->[0]"; nic mi nie drukuje
print "${$users[0]}[0]"; nic mi nie drukuje
print "$users->[0]->[0]"; drukuje pierwsza wartość
print "$$users[0]->[0]"; drukuje pierwsza wartość

> Poza tym nie zgadza ci się głębokość zwróconej struktury. Jeśli $users
> zawiera [ [[]] ], to @users powinno zawierać ( [ [[]] ] ), a według
> ciebie zawiera jeden poziom mniej.

no może coś przeklikałem :/

> Oducz się przepisywania z podmienianiem danych. Do tego trzeba naprawdę
> dobrze umieć Perla.

no racja.
Technical Details
Message-ID: <ilcpfs$3bu$1@pippin.nask.net.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!plix.pl!newsfeed1.plix.pl!news.nask.pl!news.nask.org.pl!not-for-mail
References: <ilbcmq$57j$1@pippin.nask.net.pl> <20110310222645.6b8b4567@polsl.pl> <ilcmhb$1u3$1@pippin.nask.net.pl> <ilcnbj$l1v$1@solani.org>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!plix.pl!newsfeed1.plix.pl!news.nask.pl!news.nask.org.pl!not-for-mail
From: MaRc <marc@gmails.com>
Newsgroups: pl.comp.lang.perl
Subject: Re: perl - wyciąganie danych z bazy
Date: Fri, 11 Mar 2011 10:19:56 +0100
Organization: NASK - www.nask.pl
Lines: 94
Message-ID: <ilcpfs$3bu$1@pippin.nask.net.pl>
References: <ilbcmq$57j$1@pippin.nask.net.pl> <20110310222645.6b8b4567@polsl.pl> <ilcmhb$1u3$1@pippin.nask.net.pl> <ilcnbj$l1v$1@solani.org>
NNTP-Posting-Host: 193.59.37.1
Mime-Version: 1.0
X-Trace: pippin.nask.net.pl 1299835196 3454 193.59.37.1 (11 Mar 2011 09:19:56 GMT)
X-Complaints-To: abuse ATSIGN nask.pl
NNTP-Posting-Date: Fri, 11 Mar 2011 09:19:56 +0000 (UTC)
In-Reply-To: <ilcnbj$l1v$1@solani.org>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.14) Gecko/20110223 Thunderbird/3.1.8
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit