On Wed, 2008-11-19 at 10:12 -0500, Andrew Ballard wrote:
> On Wed, Nov 19, 2008 at 9:32 AM, Craige Leeder <[EMAIL PROTECTED]> wrote:
> > Alain Roger wrote:
> >>
> >> Hi,
> >>
> >> how can i do to test if the row number (record number) sent by
> >> mysql_fetch_object is odd or even ?
> >> i mean that:
> >> while ($row = mysql_fetch_object($result))
> >>    {
> >>     if($row%2 == 1)
> >>     {
> >>      ...
> >>     }
> >>    }
> >>
> >> the $row doesn't return a value... like 1, 2 or 6 for example...
> >> thx.
> >> F
> >>
> >>
> >
> > That's because $row is an object. Return your row uid (unique identifier;
> > primary key w/ auto increment) and do:
> >
> > while ( $row = mysql_fetch_object($result) )
> >   {
> >    if( $row->UID % 2 == 1 )
> >    {
> >     ...
> >    }
> >   }
> >
> >
> >
> > replacing UID with whatever you called the field in the database.
> >
> > Hope this helps,
> > - Craige
> >
> 
> That only works if the query returns rows with contiguous IDs, which
> is not always the case. If rows get deleted there will be gaps in an
> autonumber field. Even if no rows are deleted, it is quite common for
> a query to return rows with non-adjacent ID numbers because of the
> query conditions. It's better to use the counter approach that Nathan
> demonstrated.

It also doesn't work if the ID is anything but a number... such as an
MD5 hash. Nathan posted the correct solution.

Cheers,
Rob.
-- 
http://www.interjinn.com
Application and Templating Framework for PHP


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

Reply via email to