| From: | ioguix(at)free(dot)fr | 
|---|---|
| To: | Marc Fromm <Marc(dot)Fromm(at)wwu(dot)edu> | 
| Cc: | "pgsql-admin(at)postgresql(dot)org" <pgsql-admin(at)postgresql(dot)org> | 
| Subject: | Re: access data in php | 
| Date: | 2009-01-02 18:09:22 | 
| Message-ID: | alpine.DEB.2.00.0901021900580.1850@xigix.ioguix.net | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-admin | 
On Fri, 2 Jan 2009, Marc Fromm wrote:
> If I gather the sql results with this code
> $results = pg_query($dbconn,$query);
>  
> I can check if there is no returned data with this code
> $rows = pg_fetch_assoc($result);
>  
> but if I then use a while loop to display data (if there is data returned) with this code 
> while ($row = pg_fetch_array($result)){ . . . }
>  
> I have to execute this code a second time before the while loop
> $results = pg_query($dbconn,$query);
>  
> If I do not execute the $results line a second time the while loop does not work properly.
>  
> Why is $results loosing its value when it hits the while loop?
>  
> Thanks
>  
> Marc
pg_fetch_assoc behave like pg_fetch_array: it increments the internal 
pointer to the current result.
So if you call it once, then pg_fetch_array will return the 2nd result in 
the result set.
You can either :
- use pg_fetch_assoc($result,0) whish shouldn't increment the internal 
pointer (no sure though, check http://php.net/pg-fetch-assoc)
- seek back to the first result in the result set using pg-result-seek 
(http://php.net/pg-result-seek)
- use pg_num_rows to get the number of rows in your result set.
Happy new year !
-- 
Guillaume (ioguix) de Rorthais
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Scott Marlowe | 2009-01-02 18:28:15 | Re: access data in php | 
| Previous Message | Scott Marlowe | 2009-01-02 17:28:42 | Re: access data in php |