Ver Mensaje Individual
  #10 (permalink)  
Antiguo 07/09/2013, 01:29
bathorz
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 29
Respuesta: For en lugar de Do While

El problema es que mysqly no tiene una función propia para cargar todos los registros en un array de una vez, como fetchAll() en PDO u otra en mysqli. Por eso, y porque le van a colgar el cartel de obsoleto, te conviene migrar como te sugiere jonni09lo.
No obstante se puede utilizar for() con arrays asociativos, pero primero es necesario cargar un array con todos los registros.

for() con array asociativo:
Código PHP:
Ver original
  1. /** campo números en la BBDD **/
  2. // ( [key 1] => 2 [key 2] => 4 [key 3] => 6 [key 4] => 8 [key 5] => 10 )
  3.  
  4. $sql = "SELECT indice,valor FROM `numeros`;";
  5. $query = mysql_query($sql, $conn);
  6.  
  7. /** forma básica de una función que no tiene mysql **/
  8. function mysqly_all_assoc($query) {
  9.    while ($row = mysql_fetch_assoc($query)) {
  10.       $rs[$row['indice']] = $row['valor'];
  11.    }
  12.    return $rs;
  13. }
  14.  
  15. //$rs = mysqly_all_assoc($query);
  16.  
  17. /** reemplaza a: $rs = mysqly_all_assoc($query); **/
  18. $rs = array(
  19. 'key 1' => 2,
  20. 'key 2' => 4,
  21. 'key 3' => 6,
  22. 'key 4' => 8,
  23. 'key 5' => 10);
  24.  
  25. for ($i = 1; ($i <= 15); $i++, $e++) {
  26.    //($row(mysql_fetch_assoc($rs)));
  27.    if (in_array($i, $rs)) {
  28.       echo key($rs) . ':' . current($rs);
  29.       next($rs);
  30.    } else {
  31.       echo 'no:' . $i;
  32.    }
  33.    echo '<br />';
  34. }

Última edición por bathorz; 07/09/2013 a las 06:50