Re: PHP and PostgreSQL - Mailing list pgsql-general

From GH
Subject Re: PHP and PostgreSQL
Date
Msg-id 20010106115251.B59573@over-yonder.net
Whole thread Raw
In response to Re: PHP and PostgreSQL  (GH <grasshacker@over-yonder.net>)
Responses Re: PHP and PostgreSQL
List pgsql-general
On Sat, Jan 06, 2001 at 11:22:07AM -0600, some SMTP stream spewed forth:
> On Fri, Jan 05, 2001 at 10:07:28PM -0800, some SMTP stream spewed forth:
> > On Fri, Jan 05, 2001 at 11:17:29PM +0100, Uro Gruber wrote:
> > > Hi!
> > >
> > > I have some questions about coding in php with postgre.
> > >
> > > Here is my code
> > >
> > > $qu = pg_exec ($db_conn, "SELECT * FROM clients ORDER BY username");
> > > $row = 0; // postgres needs a row counter other dbs might not
> > > while ($data = @pg_fetch_object ($qu, $row)) {
> > > echo $data->username." (";
> > > echo $data->password ."): ";
> > > echo $data->client_id."<BR>";
> > > $row++;
> > > }
> > >
> > > When i execute this i get 3 records (in DB is also 3 records), if i
> > > delete @ before pg_fetch_object i get an error:
> > >
> > > "Unable to jump to row 3 on PostgreSQL result index 4"
> > >
> > > I understand what's wrong and i know why is that @.
> > >
> > > What i do want to know is, if there is something wrong with this
> > > function or am i doing something wrong. I don't like that kind of
> > > errors. How can i stop before the end.
> >
> $nr=pg_numrows($qu);
> for($i=0; $i < $nr; $i++)
>
(And I wasn't even drunk at type-time.)
       (adds)
> This add another variable in exchange for saving an obscene amount of
> time counting rows on every iteration.
>
                     (occurs)
> The same situation occures when going through arrays.
> If an array item is removed, then the number is different and may affect
> the row count and thus the loop. I doubt that such could happen with
> a resultset, but it is safer and a buttload faster to pre-count the rows.
>
> gh
>
> >>>>>     for($i=0; $i < pg_numrows($qu); $i++) {
>
> >         $data = pg_fetch_object($qu, $row);
> >         echo $data->username." (";
> >         echo $data->password ." )";
> >         echo $data->client_id."<BR>>";
> >     }
> >
> >     You can blame the PHP people for having wildly dissimilar systems
> > for iterating through result sets...
> >
> > > In mysql there was no need to count rows.
> >
> >     Let's not start the MySQL vs. Postgres wars again...  :)
> >
> > --
> > Adam Haberlach            |A cat spends her life conflicted between a
> > adam@newsnipple.com       |deep, passionate, and profound desire for
> > http://www.newsnipple.com |fish and an equally deep, passionate, and
> > '88 EX500                 |profound desire to avoid getting wet.

pgsql-general by date:

Previous
From: "Thomas T. Thai"
Date:
Subject: XLogWrite: had to create new log file
Next
From: Tom Lane
Date:
Subject: Re: Problems with order by, limit, and indices