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
sybase_fetch_assoc
(PHP 4 >= 4.3.0, PHP 5)
sybase_fetch_assoc — Lit une ligne de résultat Sybase sous forme de tableau associatif
Description
sybase_fetch_assoc() est une alternative de sybase_fetch_row() qui utilise les noms de colonnes plutôt que des entiers comme index dans le tableau de résultats. Les colonnes de différentes tables ayant le même nom sont retournées sous la forme name, name1, name2, ..., nameN.
Il est important de noter qu'utiliser sybase_fetch_assoc() n'est pas significativement plus lent que sybase_fetch_row(), tout en procurant un niveau de confort accru.
Liste de paramètres
- result
-
Valeurs de retour
Retourne un tableau contenant la ligne lue, ou bien FALSE s'il n'y a plus de lignes.
Notes
Note: Cette fonction n'est disponible qu'avec la bibliothèque CT Sybase, et non pas avec la bibliothèque DB.
Voir aussi
- sybase_fetch_row() - Retourne une ligne Sybase sous la forme d'un tableau numérique
- sybase_fetch_array() - Retourne une ligne Sybase sous la forme d'un tableau
- sybase_fetch_object() - Retourne une ligne Sybase sous la forme d'un objet
sybase_fetch_assoc
06-May-2004 11:33
01-Jul-2003 07:51
For users that want this function in other applications, use this function. I have been using it for over a year with great success.
function sybase_fetch_assoc($query_result){
$row = sybase_fetch_array($query_result);
$values = "";
if(is_array($row))
{
while(list($key, $val) = each($row))
{
$values[$key] = $val;
}
}
return $values;
}
