Foros del Web » Programando para Internet » PHP »

problema con array obtenido de una consulta

Estas en el tema de problema con array obtenido de una consulta en el foro de PHP en Foros del Web. Saludos... tengo un lio #1 con un array que no se deja, bueno no me deja hacer lo que quiero, tengo una consulta y paso ...
  #1 (permalink)  
Antiguo 06/08/2012, 12:24
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
Pregunta problema con array obtenido de una consulta

Saludos...

tengo un lio #1 con un array que no se deja, bueno no me deja hacer lo que quiero, tengo una consulta y paso el resultado con mysql_fetch_assoc() aun $array, el asunto es, como puedo leer los datos del $array??? ya me di un clavado en el manual de php y vienen ejemplos para un vector con foreach(), pero no encuentro algo para poder leer el $array, alguna sugerencia, ademas tengo otro lio

lio #2, tengo una consulta en una pagina que tiene dos tablas

Código PHP:
<?php
/** la consulta*/
$consulta "SELECT * FROM misdatos";
$query mysql_query($consulta);

/** mi tabla1 */
echo "<table><tr><th>enca1</th><th>enca2</th></tr>";
while(
$row1 mysql_fetch_assoc($query))
echo 
"<tr><td>".$row1['id']."</td><td>".$row1['dato1']."</td><td>".$row1['dato2']."</td></tr>";
echo 
"</table>";

/**mi tabla2*/
echo "<table><tr><th>enca1</th><th>enca2</th></tr>";
while(
$row2 mysql_fetch_assoc($query))
echo 
"<tr><td>".$row2['id']."</td><td>".$row2['dato3']."</td><td>".$row2['dato4']."</td></tr>";
echo 
"</table>";
el problema que tengo es que la segunda tabla no se ven los datos, no los muestra, y no marca error el php y no me da pista de porque me pasa esto, puedo hacer esto, usar dos veces el mysql_fetch_assoc() en una misma pagina????, algún comentario gracias.
  #2 (permalink)  
Antiguo 06/08/2012, 12:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problema con array obtenido de una consulta

Pues para leer un array simplemente usa el índice que quieres leer: $array[0], o $array[20], etc. todo depende de la cantidad de datos que tenga tu array.

Sí se puede, pero tienes que usar mysql_data_seek para regresar el puntero de tu resultset al inicial, aunque es más costoso esto, yo mejor bajaría los resultados a un array, y ciclaria ese array dos veces a volver a bajar los datos de la BDD.

Saludos.
  #3 (permalink)  
Antiguo 06/08/2012, 12:53
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: problema con array obtenido de una consulta

Gracias por la respuesta y la recomendación, oye una pregunta mas, encontré que los $array se leen $array[$num][$dato], para los multidimencionales, aplica para el array de la consulta????, gracias de antemano
  #4 (permalink)  
Antiguo 06/08/2012, 14:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problema con array obtenido de una consulta

Si es un array multidimensonal, sí, pero si no lo es pues no.

Saludos
  #5 (permalink)  
Antiguo 06/08/2012, 14:36
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años
Puntos: 34
Respuesta: problema con array obtenido de una consulta

Una solución sería traer la info ya dividida en 2 tablas, haciendo 2 consultas.

Otra solución sería dentro del while (1 solo while) ir armado dos strings con los datos de las 2 tablas y luego imprimir cada una. Con esto evitas recorrer 2 veces.
  #6 (permalink)  
Antiguo 06/08/2012, 14:48
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: problema con array obtenido de una consulta

estaba pensabdo en pasarlos como datos XML y llenar las tablas con java script, se podra, o como quiera sera realizar dos veces la consulta al servidor???
  #7 (permalink)  
Antiguo 06/08/2012, 14:50
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: problema con array obtenido de una consulta

Cita:
Iniciado por patriciomase Ver Mensaje
Una solución sería traer la info ya dividida en 2 tablas, haciendo 2 consultas.

Otra solución sería dentro del while (1 solo while) ir armado dos strings con los datos de las 2 tablas y luego imprimir cada una. Con esto evitas recorrer 2 veces.
barajeame mas despacio tu segunda propuesta, como que con un solo while y armar dos strings???
  #8 (permalink)  
Antiguo 06/08/2012, 14:51
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: problema con array obtenido de una consulta

como es el array que devuelve el mysql_fetch_array()??? se que es multidimencional pero como se manejaria en un bucle para desplegar datos???
  #9 (permalink)  
Antiguo 06/08/2012, 15:01
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años
Puntos: 34
Respuesta: problema con array obtenido de una consulta

sería algo así, no está probado lo escribo así al vuelo

Código PHP:
Ver original
  1. /** mi tabla1 */
  2. $tabla1 =  "<table><tr><th>enca1</th><th>enca2</th></tr>";
  3. /**mi tabla2*/
  4. $tabla2 = "<table><tr><th>enca1</th><th>enca2</th></tr>";
  5.  
  6. while($row1 = mysql_fetch_assoc($query)) {
  7. $tabla1 .= "<tr><td>".$row1['id']."</td><td>".$row1['dato1']."</td><td>".$row1['dato2']."</td></tr>";
  8. $tabla2 .= "<tr><td>".$row1['id']."</td><td>".$row1['dato3']."</td><td>".$row1['dato4']."</td></tr>";
  9. }
  10. $tabla1 .="</table>";
  11. $tabla2 ="</table>";
  12.  
  13. echo $tabla1;
  14. echo $tabla2;

es un poco cutre pero tiene que andar
  #10 (permalink)  
Antiguo 06/08/2012, 16:21
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: problema con array obtenido de una consulta

si esa forma la uso, pero el lio esta en que no uso todos los campos de la consulta en una tabal, parte de los campos de la consulta los uso para llenar una segunda tabla pero cuando hago el barrido de nuevo no me aroja datos, el cursor se queda al final, GatorV me dice que se puede usar mysql_data_seek para regresar el cursor, aunque no lo recomienda, quiero suponer que involucra cargal al servidor por el proceso que se realiza, al inicio deje codigo de ejemplo donde muestro como manejo mi consulta
  #11 (permalink)  
Antiguo 06/08/2012, 16:43
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: problema con array obtenido de una consulta

Cita:
Iniciado por GatorV Ver Mensaje
Pues para leer un array simplemente usa el índice que quieres leer: $array[0], o $array[20], etc. todo depende de la cantidad de datos que tenga tu array.

Sí se puede, pero tienes que usar mysql_data_seek para regresar el puntero de tu resultset al inicial, aunque es más costoso esto, yo mejor bajaría los resultados a un array, y ciclaria ese array dos veces a volver a bajar los datos de la BDD.

Saludos.
me dices que es costoso el mysql_data_seek(), ya vi que esta esta siendo cambiado por mysqli_data_seek(), crees que pueda usar esta y cambiar todo a mysqli????? o seguirá siendo algo costoso???? supongo que lo costoso te refieres a la carga del servidor o rendimiento de la aplicación, es verdad????
  #12 (permalink)  
Antiguo 06/08/2012, 16:50
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años
Puntos: 34
Respuesta: problema con array obtenido de una consulta

Cita:
Iniciado por chenteb Ver Mensaje
si esa forma la uso, pero el lio esta en que no uso todos los campos de la consulta en una tabal, parte de los campos de la consulta los uso para llenar una segunda tabla pero cuando hago el barrido de nuevo no me aroja datos, el cursor se queda al final, GatorV me dice que se puede usar mysql_data_seek para regresar el cursor, aunque no lo recomienda, quiero suponer que involucra cargal al servidor por el proceso que se realiza, al inicio deje codigo de ejemplo donde muestro como manejo mi consulta
con ese código que yo te puse estas armando las dos tablas, no es igual a lo que vos hacías, no hay "lío"
  #13 (permalink)  
Antiguo 06/08/2012, 18:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problema con array obtenido de una consulta

Yo diría que te fueras por la opción de guardar en un array ya que volver a recorrer el resultset es más lento.

Saludos.
  #14 (permalink)  
Antiguo 07/08/2012, 08:29
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: problema con array obtenido de una consulta

Cita:
Iniciado por patriciomase Ver Mensaje
con ese código que yo te puse estas armando las dos tablas, no es igual a lo que vos hacías, no hay "lío"
el lio esta en que tengo una grafica entre las tablas, y ese grafico no puede estar dentro del ciclo...
  #15 (permalink)  
Antiguo 07/08/2012, 09:44
 
Fecha de Ingreso: octubre-2009
Mensajes: 48
Antigüedad: 14 años, 6 meses
Puntos: 2
De acuerdo Respuesta: problema con array obtenido de una consulta

ya quedo resuelto, lo que hice fue pasar a un $array[][] la consulta y por medio de bucles acceder al $array[][], batalle poquito porque no sabia como llenarlo pero una ves lleno leer fue mas sencillo, no es asociativo pero no manejo muchos campos para hacer la referencia, gracias amigos por sus recomendaciones. saludos


p.d. dicho "Arrieros somos y en el camino andamos"

Etiquetas: mysql, tabla
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:45.