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 — Obtiene el resultado de la sentencia como una matriz asociativa
Descripción
Regresa una matriz que corresponde a las filas obtenidas o FALSE si no hay mas filas.
Note: Esta función se encuentra disponible solamente cuando se usan las bibliotecas CT de Sybase y no las bibliotecas DB.
sybase_fetch_assoc() es una adaptación de sybase_fetch_row() que usa los nombre de las columnas en lugar de números enteros como indices en la matriz resultante. En caso de columnas de diferentes tablas, con el mismo nombre, éstas son expresadas como: nombre, nombre1, nombre2, ..., nombreN.
Algo por tener en cuenta es, que usando sybase_fetch_assoc() significativamente no es más lenta que usar sybase_fetch_row(), dado que provee un valor agregado.
Vea también sybase_fetch_array(), sybase_fetch_object() y sybase_fetch_row().
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;
}
