Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/04/2009, 14:06
MauXXI
 
Fecha de Ingreso: junio-2008
Mensajes: 51
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Retornar un array en un bucle desde una función

Ahora entiendo. El problema era que cada vez que se verificaba opciones() dentro de while siempre devolvía un único elemento y me lo repetía infinitas veces.

En cuanto a solucionar con foreach (que me parecio lo más correcto) el bucle se vuelve finito pero dado el array ( [0] => 2 [id] => 2 [1] => prueba 1 [nombre] => prueba 1 ), foreach me devuelve los valores de esta manera:

Código html:
Ver original
  1. <select name="id_grupo" id="id_grupo">
  2.     <option value="2">2</option>
  3.     <option value="2">2</option>
  4.     <option value="p">p</option>
  5.     <option value="p">p</option>

Esto es más extraño aún (para mí) ya que se supone que el resultado debería ser:
Código html:
Ver original
  1. <select name="id_grupo" id="id_grupo">
  2.     <option value="1">prueba 1</option>
  3.     <option value="2">prueba 2</option>

Porque para colmo en la base de datos tengo dos entradas y en la consulta me aparece como resultado sólo una.

Es cierto SoutlinK, debería guardar los resultados en una variable lo que me llevaría a eliminar las funciones ya que es lo mismo que trabajar sin ellas.
De todos modos guardar los resultado de una función en una variable sería un tanto inutil hasta no solucionar el problema del porqué la función devuelve como único resultado el Array ( [0] => 2 [id] => 2 [1] => prueba 1 [nombre] => prueba 1 ).

En cuanto a mi práctica con while siempre lo usé de la siguiente manera:
Código php:
Ver original
  1. while($registro=mysql_fetch_array($consulta) {
  2. echo $registro['id'];
  3. echo $registro['nombre'];
  4. }

Este código ejemplo muestra un bucle finito, siempre me funcionó, pero ahora que quiero usarlo dentro de una función deja de funcionar (ironía).

Desde ya gracias a los que me están ayudando :P