Foros del Web » Programando para Internet » PHP »

Iterar vector con resultados de una consulta

Estas en el tema de Iterar vector con resultados de una consulta en el foro de PHP en Foros del Web. Saludos a toda la comunidad del foro mi duda es la siguiente: tengo un vector el cual he generado con los resultados de una consulta ...
  #1 (permalink)  
Antiguo 12/03/2012, 23:48
 
Fecha de Ingreso: marzo-2012
Ubicación: Monteria
Mensajes: 3
Antigüedad: 12 años, 1 mes
Puntos: 0
Iterar vector con resultados de una consulta

Saludos a toda la comunidad del foro mi duda es la siguiente: tengo un vector el cual he generado con los resultados de una consulta y me gustaria saber cual es la mejor forma de sacar los resultados en cada iteracion, de la misma forma en que trabaja la funcion mysql_fetch_array pero con el vector, es decir que en una iteracion yo puedo imprimir los datos de los campos de la forma echo $data['nombre']; echo $data['apellido']; para la segunda ireracion lo mismo pero los campos de la otra fila de resultados y asi hasta la ultima. Este es el codigo donde lo genero.

$query = "SELECT * FROM clientes";
$result = mysql_query($query);
$data = array();
while($row = mysql_fetch_array($result)){
$data[] = $row;
}

return $data;

Última edición por dantegaviria; 13/03/2012 a las 00:12
  #2 (permalink)  
Antiguo 13/03/2012, 00:25
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Iterar vector con resultados de una consulta

La verdad es que no se entiende la pregunta pero en PHP hay pocas sentencias para iterar:
for, foreach, while y do...while consulta el manual. Saludos
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 13/03/2012, 00:36
 
Fecha de Ingreso: marzo-2012
Ubicación: Monteria
Mensajes: 3
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Iterar vector con resultados de una consulta

Si la verdad es que la explicación estuvo un poco enredada. La idea es que el codigo que tengo arriba lo utilizo en una funcion que es la que captura todos los datos de unos clientes y esa funcion retorna ese vector $data. Lo que intento hacer es que cuando llame a la funcion desde una vista me muestre esos datos. Lo logre hacer de esta forma:

for($i=0; $i<sizeof($data); $i++){
echo $data[$i]['id'];
echo $data[$i]['nombre'];
echo '<br/>';
}


Pero me gustaría saber si hay una mejor forma de hacerlo.
  #4 (permalink)  
Antiguo 13/03/2012, 00:42
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Iterar vector con resultados de una consulta

Si los resultados los guardas en un array, puedes recorrerlo con for y con foreach. Tal vez foreach sea un poco más simple pero no hay más alternativas. No importa si estás en una vista o en un controlador. Consulta esto: http://de2.php.net/manual/es/control...es.foreach.php
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 13/03/2012, 00:58
 
Fecha de Ingreso: marzo-2012
Ubicación: Monteria
Mensajes: 3
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Iterar vector con resultados de una consulta

Bueno la idea es que el bucle iterara los resultados casi de la misma forma como lo haría mysql_fetch_array.

while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
echo row['id'];
echo row['nombre'];
}

En el sentido de que no tengo que colocarle un indice "$i" echo $data[$i]['campo']; sino solo echo $data ['campo']; Pense que habia una forma mas limpia de hacerlo que la que presente con los indices, pero depronto solo me estoy liando con eso.
  #6 (permalink)  
Antiguo 13/03/2012, 04:28
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Iterar vector con resultados de una consulta

Sin índices sólo puedes hacerlo con foreach.
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: iterar, mysql, resultados, vectores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:33.