Re: Vexing PHP problem - browser hangs. - Mailing list pgsql-php
From | Steve Crawford |
---|---|
Subject | Re: Vexing PHP problem - browser hangs. |
Date | |
Msg-id | 200307161511.17128.scrawford@pinpointresearch.com Whole thread Raw |
In response to | Vexing PHP problem - browser hangs. (Lynna Landstreet <lynna@gallery44.org>) |
List | pgsql-php |
Be aware that $artist_list is an array (rows) of arrays (columns in each row). For your version of php you need to first get the row with $thisrow = pg_fetch_row($artist_list, $row) and then get the fields from the row array with $thisrow[0], $thisrow[1]... See: http://us2.php.net/manual/en/function.pg-fetch-row.php Cheers, Steve On Wednesday 16 July 2003 1:44 pm, Lynna Landstreet wrote: > Hi folks, > > I'm running into trouble with a bit of PHP code that ought to be simple and > probably is to anyone who actually knows what they're doing, but is causing > my browser to hang every time I run it. The script in question follows; > it's supposed to query the artists table in my database and print a list of > all the artists, one per line, last name then first name. It also pulls up > the artist_id field because once I've gotten the damn thing to work at all, > I'm going to use that to link the names to artist info pages, but right now > that field isn't being used. > > I know the connection to the database (which happens in the head section of > the document, not here) is being made successfully, because I tested that > on its own first. And the query is being made successfully, because I > tested that to, before I added the code to display the artists' names. It's > that part that is causing it to hang. I don't get any error message or > anything, the browser just "thinks" for an eternity, locking up my system > while doing so, until I eventually force-quit it. > > Does anyone have any idea what might be going wrong? There is a fairly > large number of artist records (around 500), but I don't think that's it, > because when I tried changing the second expression in the for statement to > row < 30 instead of row < pg_numrows($artist_list) to just print the first > 30 names, it didn't help. I'm hoping the problem is something simply that a > more experienced person could see easily and I'm just missing because I'm > new at this... > > Anyway, here's the code. BTW, the server has PostgreSQL 7.2 and PHP 4.1, so > some of the names of the PHP functions are different than they would be in > 4.2. > > <? > > // queries the database, finds artists > > $query = "SELECT artist_id, firstname, lastname FROM artists > ORDER BY lastname"; > $artist_list = pg_exec($db, $query); > if ($artist_list) { > > // checks to see if any results where found > > if ( pg_numrows($artist_list) == 0) { > echo "<p>Sorry, no artists were found.</p>"; > } else { > > // writes list > > for ($row = 0; row < pg_numrows($artist_list); $row++) { > echo "<p>" . pg_result($artist_list, $row, > 'lastname') . ", " . pg_result($artist_list, $row, 'firstname') . "</p>"; > } > > // adds total to bottom of list > > echo "<p>Total results retrieved:" . > pg_numrows($artist_list) . "</p>"; > > } > > // prints error message if query fails > > } else { > echo "<p>The query failed with the following error > message:</p>"; > echo "<p>" . pg_errormessage($db) . "</p>"; > } > ?> > > Thanks, > > Lynna