Автор Тема: В массиве записей меньше чем в таблице  (Прочитано 2435 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Столкнулся с такой вот проблемой и немогу разрешить :(((
В таблице, которую я обрабатываю командой select имеется 5527 необходимых записей. Все значения числовые(integer). Тобишь моя задача посчитать значения в столбце.

Имеем запрос вида:


my ($dbh,$sth,$count);
$dbh = DBI->connect("DBI:mysql:host=localhost;database=squid","skif","secret")
                or die "cann\'t open db table $!";
$sth = $dbh->prepare("SELECT size FROM squid_log_1 where ident=\'skif\'")
                    or die "cann\'t execute select from db table $!";
$sth->execute ();

Написанный на перле. потом я соответственно делаю:

@size = $sth->fetchrow_array;

и вот тут-то и проявляется глюк - размер массива при команде:
print "@size \\n";

Равным 1531. Тоже значение возвращается если я выполняю:

$size = $sth->fetchrow_array;

Что тоже не то. Самое интересное, если я делаю следующее:

while ($size = $sth->fetchrow_array)
{
chomp $size;
$res = $res +$size;
}
 
$res возвращает результат в 16581392, хлтя должен вернуть такое значение: 32693416.
Чувствую, что на каком-то этапе получения данных, добавления в массив и пр. происходит, что-то нето... подскажите, в чем фишка...
Всё будет хорошо - я договорился!

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
В массиве записей меньше чем в таблице
« Ответ #1 : 13 Декабря 2003, 00:18:03 »
SELECT count(size) FROM squid_log_1 where ident=\'skif\'

SELECT sum(size) FROM squid_log_1 where ident=\'skif\'
2B OR NOT 2B = FF

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28