I just did something similar where I had a left join
that returns several rows for each record. So to make
sure that each record is outputted once and contains
the correct 'categories' at the end of the while i
store the current $id as $prev_id. This way I can
check to see if we're working on the same listing
($id==$prev_id) and just adding a category or if it is
a new listing ($id!=$prev_id).


table listings contains company info
table categories contains the categories that they may
beloing to 
table l_categories ties the two together

QUERY:
SELECT * FROM listings l
        LEFT JOIN l_categories lc ON l.l_id = lc.l_id
        LEFT JOIN categories c ON lc.cat_id = c.cat_id
        WHERE l.b_id = '.$_SESSION[b_id].'
        ORDER BY l.l_id

        $prev_id = '';
        while ($row = mysql_fetch_array($result))
        {
                if ($row[l_id] == $prev_id)
                {
                        $listing .= '- '.$row[category].'<br>';
                }
                elseif ($row[l_id] != $prev_id)
                {
                        if ($prev_id != '')
                        {
                                // not first listing
                                $content .= $listing.'</td></tr>
                                <tr><td>[<a
href="edit.php?l_id='.$prev_id.'">Modify</a>]
                                </td></tr>
                                <tr><td>&nbsp;</td></tr>';
                                $listing = '';
                        }
                        
                        $listing .= '<tr><td bgcolor="#EEEEEE">
                        <strong>'.$row[l_name].'</strong>
                        </td></tr>
                        <tr><td>
                        '.$row[l_address].'<br>
                        '.$row[l_city].', '.$row[l_state].'
'.$row[l_zip].'<br>
                        <strong>Phone:</strong>
'.format_phone($row[l_phone]).'<br>
                        <strong>Toll-Free:</strong>
'.format_phone($row[l_tollfree]).'<br>
                        <strong>Fax:</strong>
'.format_phone($row[l_fax]).'<br>
                        <strong>Email:</strong> '.$row[l_email].'<br>
                        <strong>Description:</strong>
'.$row[l_description].'<br>
                        <strong>Categories:</strong><br> -
'.$row[category].'<br>';
                }

Then after the while loop I do this to finish off the
list and provide the edit link

        $content .= $listing.'</td></tr>
        <tr><td>[<a
href="edit.php?l_id='.$prev_id.'">Modify</a>]
        </td></tr>
        <tr><td>&nbsp;</td></tr>';
        $listing = '';

olinux


--- "Snijders, Mark" <[EMAIL PROTECTED]>
wrote:
> if you want to access stuff from row 3 while being
> in row 2.. you first have
> to put it all into an array.. and then you coul do
> that.. but i can't comup
> with something where you need something like that..
> a strange idea...?
> 
> -----Original Message-----
> From: Leif K-Brooks
> [mailto:[EMAIL PROTECTED]]
> Sent: maandag 14 oktober 2002 9:47
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> Subject: Re: [PHP-DB] Accessing data from next row?
> (mysql)
> 
> 
> I know that, but what if I need to access data from
> the next row?  If I 
> have 3 rows, is there a way to access something from
> row 3 while the 
> loop is in row 2, but still have the loop go to row
> 3 when it's done 
> with row 2?
> 
> John W. Holmes wrote:
> 
> >>Using mysql, how do I access the data of the next
> row using code
> >>something like this:
> >>$result = mysql_query("select column from table
> where
> >>whatever='whatever'");
> >>while($array = mysql_fetch_array($result)){
> >>//Whatever
> >>}
> >>    
> >>
> >
> >Each iteration of the while loop will fetch a row
> for you and it's
> >contents will be in the $array[] array. Try "echo
> $array['column'];"
> >inside of your while to see what I'm talking about.
> >
> >---John Holmes...
> >
> >
> >
> >  
> >
> 
> -- 
> The above message is encrypted with double rot13
> encoding.  Any
> unauthorized attempt to decrypt it will be
> prosecuted to the full extent
> of the law.
> 
> 
> 
> 
> -- 
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 


__________________________________________________
Do you Yahoo!?
Faith Hill - Exclusive Performances, Videos & More
http://faith.yahoo.com

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

Reply via email to