note 42169 added to function.sybase-fetch-assoc
| From: | elektrotechnik at onlinehome dot de | Date: | Thu, 06 May 2004 08:33:55 +0000 |
| Subject: | note 42169 added to function.sybase-fetch-assoc | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-69269@lists.php.net to get a copy of this message | ||
Very often you see constructs like this to loop thru a result set:
while ($row = sybase_fetch_assoc($result))
{
while (current($row)) // or while (current($row) != false)
{
$data = current($row);
$key = key($row);
//
// do stuff here
//
next($row);
}
}
Do not use it in this way! You have to write the inner while loop this way:
while (current($row) !== false)
If you just use
while (current($row) != false)
or
while (current($row))
you could be in trouble and loose some data. In my case I had a query which contained the following
statement:
datediff(dd, date1, date2) as days
Now if days computes to 0 then the two while loop examples from above will exit (because the 0 is
'seen' as false). Therefore you must use while (current($row) !== false) which will not
exit if one of you data contains 0.
Hth,
rgds,
Marcus
----
Manual Page -- http://www.php.net/manual/en/function.sybase-fetch-assoc.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+42169
Delete -- http://master.php.net/manage/user-notes.php?action=delete+42169&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+42169&report=yes
Search -- http://master.php.net/manage/user-notes.php