Lipetsk *nix Association Forum Lipetsk *nix Association Forum
Новости:
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
27 Ноября 2024, 12:26:24


Войти


Страниц: [1]   Вниз
  Печать  
Автор Тема: как сделать сложный mysql запрос  (Прочитано 21355 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
wrag
Небритый одмин
*****

Карма: 0
Сообщений: 673



Награды
« : 27 Мая 2008, 11:28:28 »

ну на сколько я знаком с перлов то у него енсть 3 типа доступа к данным из запроса:
fetchrow_array
fetchrow_arrayref
fetchrow_hashref
(что значат посмотрите в мануале лень описывать).

ну про это написано в мане но как то вскользь
fetchrow_array  Возвращает следующую запись как массив 
fetchrow_arrayref  Возвращает следующую запись как ссылку на массив 
fetchrow_hashref  Возвращает следующую запись как ссылку на хеш 
fetchall_arrayref  Возвращает всю информацию как массив массивов 

fetchrow_array
Этот метод выбирает очередную строку данных и возвращает ее как массив значений полей. Пример:
while(@row = $sth -> fetchrow_array) {
print qw($row[0]\t$row[1]\t$row[2]\n);
}

fetchrow_arrayref
Этот метод выбирает очередную строку данных и возвращает ссылку на массив значений полей. Пример:
while($row_ref = $sth -> fetchrow_arrayref) {
print qw($row_ref ->
  • \t$row_ref -> [1]\t$row_ref ->
  • [2]\n);
    }

    fetchrow_hashref
    Этот метод выбирает строку данных и возвращает ссылку на хеш, содержащий пары имя/значение. Данный метод намного менее эффективен, чем использование пописанных выше ссылок на массивы. Пример:
    while($hash_ref = $sth -> fetchrow_hashref) {
    print qw($hash_ref -> {firstname}\t$hash_ref ->
    {lastname}\t$hash_ref ->{title}\n);
    }

    fetchall_arrayref
    Этот метод выдает все данные (все строки), получаемые как результат SQL-запроса. Он возвращает ссылку на массив ссылок на массивы отдельных строк. Соответственно, для обращения к этим данным нужно использовать вложенный цикл. Пример:
    my $table = $sth -> fetchall_arrayref
    or die "$sth -> errstr\n";
    my($i, $j);
    for $i ( 0 .. $#{$table}} ) {
    for $j ( 0 .. $#{$table -> [$i]} )  {
    print "$table -> [$i][$j]\t";
    }
    print "\n";
    }

    все и больше нигде не нахожу инфы которая рассмотрела бы каждый случай более подробно чтобы разобраться

    например:
    qw($row_ref ->
  • \--кусочек который мне не ясен

что за qw? а дальше что есть что? где строка? где переменная? где столбец?
ну и в том же плане разобрать все остальное
Записан

живущий в консоли
начальник отдела системотехники Люцифеp
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM