Re: Query refuses to recurse all rows

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jim,

Actually, after I got the code working, I eliminated the 'exit' and skipped 
the empty query instead to the next block.

Ahh! That cryptic header relocate: 

If the db conn or code is buggy fails, it redirects to a nice page telling the 
user that the db 'Is down for maintenance' or somesuch. 

The primary reason for it: debugging -- it shows up in my logs with the conn 
that failed, and helps pinpoint problems within the code. Has saved my butt a 
few times particularly on my main site that is heavily accessing the db with 
lots of sub-code to wade through.

Thanks for the nifty advice -- code sure looks pretty now and works like a 
charm!

Regards,
Andre
(celtic)

On Wednesday 28 May 2008, Jim Lucas wrote:
<snip>

> If I may, I would like to suggest a few other changes that you might like.
>
> first off, don't use counters, they waist cpu cycles.  Try this code out.
>
>
> <?php
>
> include("dbc.php");
> if (!$db){ $_SESSION['db'] = "select-thread"; session_write_close();
>
> // Whhhhaaaattttt........???  what is this for?
> header("location: db.php");}
> #
> #
> #
> # why are you displaying anything after a header('Location ....') call?
>
>
> // Build first query
> $query1 = "SELECT *
>             FROM   replies
>             WHERE  mid = '{$_SESSION['mid']}'";
>
> // Execute query. if it fails, skip this block
> if ( ($result1 = pg_exec($db, $query1)) !== false ) {
>
>    // if we are here, the query worked.  Loop through results
>    while ( $row1 = pg_fetch_assoc($result1) ) {
>
>      /* display stuff */
>
>      // Build second query
>      $query2 = "SELECT *
>                 FROM   subs
>                 WHERE  mid = '{$_SESSION['mid']}'
>                 AND    rid = '{$row1['rid']}'";
>
>
>      // Execute second query, if it fails, skip this block
>      if ( ($result2 = pg_exec($db, $query2)) !== false ) {
>        // If we are here, the query worked.  Loop through results
>        while ( $row2 = pg_fetch_assoc($result2) ) {
>          /* display stuff */
>        }
>      }
>
>      // Build third query
>      $query3 = "SELECT *
>                 FROM   subs
>                 WHERE  subsid = '{$_SESSION['subsid']}'
>                 AND    rid = '{$row1['rid']}'
>                 AND    responded = '1'";
>
>      // Execute third query, if it fails, skip this block
>      if ( ($result3 = pg_exec($db, $query3)) !== false ) {
>        // If we are here, the query worked.  Loop through results
>        while ( $row3 = pg_fetch_assoc($result3) ) {
>          /* display stuff */
>        }
>      }
>    }
> }
>
> ?>
>
> My guess is is that you don't want to actually 'exit;' the script if a
> query fails, you just wanted to skip displaying any data for it.  I
> might be wrong, but I adjusted my example to factor this in.
>
> Inquiring minds want to know.  Why is it that you have a header() call
> with a location header that tells this script to go somewhere else, but
> then you display a bunch of data after the header call is sent to the
> client?



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux