Note, that when you retrieve some PG boolean value, you get 't' or 'f' characters which are not compatible with PHP bool.
pg_fetch_row
(PHP 4, PHP 5)
pg_fetch_row — Lit une ligne dans un tableau
Description
pg_fetch_row() lit une ligne dans le résultat associé à l'index result .
Note: Cette fonction définit les champs NULL à la valeur PHP NULL.
Liste de paramètres
- result
-
Ressource de résultat de requête PostgreSQL, retournée par pg_query(), pg_query_params() ou pg_execute() (entre autres).
- row
-
Numéro de la ligne à récupérer. Les lignes sont numérotées de 0 en montant. Si l'argument est omis, la ligne suivante est récupérée.
Valeurs de retour
Un tableau de type array, indexé de 0 en montant, avec chaque valeur représentée comme une chaîne (string). Les valeurs NULL de la base de données sont retournées NULL.
FALSE est retournée si row excède le nombre de lignes dans le jeu de résultats, n'a plus de ligne disponible ou tout autre erreur.
Historique
| Version | Description |
|---|---|
| 4.1.0 | Le paramètre row devient optionnel. |
Exemples
Exemple #1 Exemple avec pg_fetch_row()
<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "Une erreur est survenue.\n";
exit;
}
$result = pg_query($conn, "SELECT auteur, email FROM auteurs");
if (!$result) {
echo "Une erreur est survenue.\n";
exit;
}
while ($row = pg_fetch_row($result)) {
echo "Auteur : $row[0] E-mail : $row[1]";
echo "<br />\n";
}
?>
pg_fetch_row
07-Jun-2006 12:18
26-Apr-2005 11:51
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).
14-Oct-2004 09:03
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;
}
23-May-2003 06:29
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.
24-Jul-2002 05:38
I use the following code to assigning query result to an array.
while ($row = pg_fetch_row($result)) $newArray[] = $row[0];
print_r($newArray);
23-Aug-2001 02:39
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>";
}
