In article <[EMAIL PROTECTED]>,
[EMAIL PROTECTED] says...
> I have a mysql query that I need to echo a variable from "once" before I go
> into the while loop which would list the entire contents of the array. The
> field shown once will not be displayed in the while looped contents. So
> theoretically, something like this:
>
> $result = mysql_query("SELECT h.title, a.agentname, a.agenturl,
> IF(h.status='Sold',1,0) AS is_sold FROM homes h, agents a WHERE h.owner=a.id
> AND a.id=$aid ORDER BY is_sold ASC");
>
> if ($is_sold=="1") {
> echo $agentname." ".$agenturl;
> }
>
> while ($row=mysql_fetch_array($result)) {
> extract($row);
> echo $title."<br>";
> }
>
> Currently, I have everything in the while loop which prints things out more
> than what I'd like. Is there a way that I can get around this problem?
>
> Any suggestions are greatly appreciated thanks. :)
I am not sure I understand the logic of what you are trying to do. It
seems to me that it might be possible that the value of is_sold might
vary between records retrieved? In which case just displaying the first
occurrence might be misleading.
Notwithstanding the logic aspect, the solution to your immediate problem
is mysql_data_seek
$result = mysql_query("SELECT h.title, a.agentname, a.agenturl,
IF(h.status='Sold',1,0) AS is_sold FROM homes h, agents a WHERE
h.owner=a.id
AND a.id=$aid ORDER BY is_sold ASC");
//Get first row
$row=mysql_fetch_array($result);
// Record pointer now points to _second_ row of results
extract($row);
if ($is_sold=="1") {
echo $agentname." ".$agenturl;
}
// Reset pointer to _first_ record of results
if (!mysql_data_seek($result, 0)) {
echo "Cannot seek to row 0\n";
// Add error handling here
}
// Now loop through the entire set
while ($row=mysql_fetch_array($result)) {
extract($row);
echo $title."<br>";
}
--
David Robley
Temporary Kiwi!
Quod subigo farinam
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php