Note, that when you retrieve some PG boolean value, you get 't' or 'f' characters which are not compatible with PHP bool.
(PHP 4, PHP 5, PHP 7, PHP 8)
pg_fetch_row — Get a row as an enumerated array
pg_fetch_row() fetches one row of data from
the result associated with the specified result
instance.
Bilginize: Bu işlev NULL alanlara PHP
null
değerini atar.
result
pg_query(), pg_query_params() veya pg_execute() işlevinden dönen PgSql\Result nesnesi.
row
Row number in result to fetch. Rows are numbered from 0 upwards. If
omitted or null
, the next row is fetched.
mode
Dizinin nasıl indisleneceğini belirleyen seçimlik değiştirge.
kip
bir sabit olup şu değerleri alabilir:
PGSQL_ASSOC
, PGSQL_NUM
ve
PGSQL_BOTH
.
PGSQL_NUM
ile işlev sayısal indisli bir dizi,
PGSQL_ASSOC
ile ilişkisel bir dizi ve
PGSQL_BOTH
ile hem sayısal hem de ilişkisel indisli bir
dizi döndürür.
An array, indexed from 0 upwards, with each value
represented as a string. Database NULL
values are returned as null
.
false
is returned if row
exceeds the number
of rows in the set, there are no more rows, or on any other error.
Sürüm: | Açıklama |
---|---|
8.1.0 |
sonuç değiştirgesi artık
PgSql\Result nesnesi kabul ediyor, evvelce bir
özkaynak kabul ederdi.
|
Örnek 1 pg_fetch_row() example
<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "An error occurred.\n";
exit;
}
$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
echo "An error occurred.\n";
exit;
}
while ($row = pg_fetch_row($result)) {
echo "Author: $row[0] E-mail: $row[1]";
echo "<br />\n";
}
?>
Note, that when you retrieve some PG boolean value, you get 't' or 'f' characters which are not compatible with PHP bool.
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).
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>";
}
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.
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.
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;
}
I use the following code to assigning query result to an array.
while ($row = pg_fetch_row($result)) $newArray[] = $row[0];
print_r($newArray);