PHP 5.6.0RC3 is available

pg_fetch_row

(PHP 4, PHP 5)

pg_fetch_rowRetorna uma linha como um array enumerado

Descrição

array pg_fetch_row ( resource $result , int $row )

pg_fetch_row() retorna uma linha de dados a partir do resultado associado com o recurso (resource) de resultado result. A linha (registro) é recuperada como um array. Cada coluna do resultado é armazenada em um índice do array, iniciando-se no índice 0.

Retorna um array que corresponde à linha carregada, ou FALSE se não existem mais linhas.

Exemplo #1 Retornando linhas (registros) no PostgreSQL

<?php 
$conn 
pg_pconnect("dbname=editora");
if (!
$conn) {
    echo 
"Um erro ocorreu.\n";
    exit;
}

$result pg_query($conn"SELECT * FROM autores");
if (!
$result) {
    echo 
"Um erro ocorreu.\n";
    exit;
}

while (
$row=pg_fetch_row($result,$i)) {
  for(
$j=0$j count($row); $j++) {
     echo 
$row[$j] . "&nbsp;";
  }

  echo 
"<br />\n";

}

?>

Nota:

A partir do PHP 4.1.0, row tornou-se opcional. Ao chamar pg_fetch_row(), o contador de linha interno será incrementado em 1.

Veja também pg_query(), pg_fetch_array(), pg_fetch_object() e pg_fetch_result().

add a note add a note

User Contributed Notes 7 notes

up
0
eddie at eddiemonge dot com
4 years ago
pg_fetch_row is faster than pg_fetch_assoc when doing a query with * as the select parameter. Otherwise, with declared columns, the two are similar in speed.
up
0
pletiplot at seznam dot cz
8 years ago
Note, that when you retrieve some PG boolean value, you get 't' or 'f' characters which are not compatible with PHP bool.
up
0
post at zeller-johannes dot de
9 years ago
I wondered whether array values of PostgreSQL are converted to PHP arrays by this functions. This is not the case, they are stored in the returned array as a string in the form "{value1 delimiter value2 delimiter value3}" (See http://www.postgresql.org/docs/8.0/interactive/arrays.html#AEN5389).
up
0
Matthew Wheeler
11 years ago
Note that the internal row counter is incremented BEFORE the row is retrieved. This causes an off by one error if you try to do:

pg_result_seek($resid,0);
pg_fetch_row($resid);

you will get back the SECOND result not the FIRST.
up
0
darw75 at swbell dot net
12 years ago
a way to do this with 2 loops to insert data into a table...

$num = pg_numrows($result);
$col_num = pg_numfields($result);

for ($i=0; $i<$num; $i++) {
  $line  = pg_fetch_array($result, $i, PGSQL_ASSOC);
  print "\t<tr bgcolor=#dddddd>\n";
    for ($j=0; $j<$col_num; $j++){
    list($col_name, $col_value) =each($line);
    print "\t\t<TD ALIGN=RIGHT><FONT SIZE=1 FACE='Geneva'>$col_value</FONT></TD>\n";
    }
  echo "<br>";
  }
up
-1
maxnamara at yahoo dot com
9 years ago
Get downlines, put them into arrays.

function get_downlines($my_code){
    global $link;

    $sql = "select user_id, name from tb_user where parentcode = $my_code";
    $res = pg_query($link,$sql);
    if(!$res){
        echo "Error: ".$sql;exit();
    }
    $num_fields = pg_num_fields($res);
    $info_rows = 0;

    $num_rows = pg_num_rows($res);
    while($arr = pg_fetch_row($res)){

           $info_offset  = 1;
         $info_columns  = 0;

        while ($info_offset <= $num_fields) {
                 $info_elements[$info_rows][$info_columns] = $arr[$info_columns];
                 $info_offset++; $info_columns++;
        }
        $info_rows++;           
    }
return $info_elements;
}
up
-1
imantr at cbn dot net dot id
12 years ago
I use the following code to assigning query result to an array.

while ($row = pg_fetch_row($result)) $newArray[] = $row[0];

print_r($newArray);
To Top