#22042 [Com]: pg_result_seek($res, 0) sets the counter to 1, not 0
| From: | iansoko at hotmail dot com | Date: | Wed, 03 Sep 2003 00:01:57 +0000 |
| Subject: | #22042 [Com]: pg_result_seek($res, 0) sets the counter to 1, not 0 | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-47105@lists.php.net to get a copy of this message | ||
ID: 22042
Comment by: iansoko at hotmail dot com
Reported By: shot at shot dot prv dot pl
Status: Closed
Bug Type: PostgreSQL related
Operating System: Slackware Linux
PHP Version: 4.3.0
New Comment:
I still encounter this bug on 4.3.1 on apache2 mandrake9 postgresql
7.4. According to bugs.php.net this is supposed to be fixed. (i think
http://bugs.php.net/bug.php?id=22042 )
//this should reset the position to the first record, not the second.
pg_result_seek($result, 0);
Previous Comments:
------------------------------------------------------------------------
[2003-02-04 12:35:17] iliaa@php.net
This bug has been fixed in CVS.
In case this was a PHP problem, snapshots of the sources are packaged
every three hours; this change will be in the next snapshot. You can
grab the snapshot at http://snaps.php.net/.
In case this was a documentation problem, the fix will show up soon at
http://www.php.net/manual/.
In case this was a PHP.net website problem, the change will show
up on the PHP.net site and on the mirror sites in short time.
Thank you for the report, and for helping us make PHP better.
------------------------------------------------------------------------
[2003-02-04 05:34:59] shot at shot dot prv dot pl
If I get the idea of pg_result_seek() right, instead of the following
script
$result = pg_query($db, $query);
// some outside loop
while ($whatever) {
for ($i = 0; $i < pg_num_rows($result); $i++) {
$row = pg_fetch_array($result, $i);
// do something
}
}
I should be able to write
$result = pg_query($db, $query);
// some outside loop
while ($whatever) {
pg_result_seek($result, 0);
while ($row = pg_fetch_array($result)) {
// do something
}
}
The problem is, when I use it this way, it misses the first row (it
looks like it iterated from the row nr 1, which is the second row in
the result). I even tried to call pg_result_seek($result, -1), but, not
surprisingly, it didn't work.
PostgreSQL 7.2.3 on i686-pc-linux-gnu, compiled by GCC egcs-2.91.66
Configure Command './configure' '--with-pgsql=/usr/local/pgsql'
'--with-pdflib=/usr/local' '--with-swf'
'--with-apxs=/usr/local/apache/bin/apxs' '--enable-magic-quotes'
'--disable-track-vars' '--without-mysql' '--with-zlib'
'--with-openssl=/usr/local/ssl'
'--with-mnogosearch=/usr/local/mnogosearch' '--enable-sigchild'
'--enable-inline-optimization' '--with-jpeg-dir=/usr/lib'
'--with-png-dir=/usr/lib' '--with-tiff-dir=/usr/lib' '--with-pear'
'--with-gd' '--with-iconv' '--with-imap'
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=22042&edit=1