Foros del Web » Programando para Internet » PHP »

Array dentro de otro array

Estas en el tema de Array dentro de otro array en el foro de PHP en Foros del Web. Tengo lo siguiente: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $darfoto = "SELECT * FROM foto WHERE idpublicacion = $idconseguido " ;   $queryfoto = mysql_query ...
  #1 (permalink)  
Antiguo 07/07/2016, 17:50
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Array dentro de otro array

Tengo lo siguiente:

Código PHP:
Ver original
  1. $darfoto = "SELECT * FROM foto WHERE idpublicacion = $idconseguido";
  2.   $queryfoto = mysql_query($darfoto);
  3.   $arrayfoto = mysql_fetch_array($queryfoto);
  4.   $consiguefoto = $arrayfoto['rutaarchivo'];

Y en la tabla foto tengo id, rutaarchivo y tengo idpublicacion, ahora la cosa es que necesito ver cada foto, por ejemplo:

Tengo 3 fotos con el idpublicacion 15, el id de las fotos seria 51,52,53.

Como hago para mostrar cada foto?

Intenté de la siguiente manera pero no funciono:

Código PHP:
Ver original
  1. for ($i=0;$i<count($arrayfoto);$i++){
  2.         echo'    <img src="imagenes/'.$consiguefoto[$i].'" width="200px"></img><br>
  3.    <img src="imagenes/'.$consiguefoto[$i].'"></img><br>
  4.        ';
  5.     }

¿Que puedo intentar?
  #2 (permalink)  
Antiguo 07/07/2016, 22:46
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Array dentro de otro array

Me estoy volviendo loco con esto ya que intento las formas que salen en Google y la cosa es esto:

Tengo una tabla llamada foto, y al subir varias fotos se suben con el id de la publicación (idpublicacion) pero al momento de solicitar me da una sola foto y no se como hacer para traer una por una, por ejemplo:

He intentado de todo pero no se que hacer ya.

$foto[0];
$foto[1];
$foto[2];
  #3 (permalink)  
Antiguo 07/07/2016, 22:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Array dentro de otro array

El tema es que necesitas un loop while() para sacar cada uno de los registros de la consulta, así como lo haces consigues un sólo registro a la vez.

No puedes iterar $arrayfoto porque no contiene todos los registros, eso te lo has imaginado.

Básicamente debes hacer esto:
Código PHP:
Ver original
  1. // MAL (sólo extraes un registro a la vez)
  2. $darfoto = "SELECT * FROM foto WHERE idpublicacion = $idconseguido";
  3. $queryfoto = mysql_query($darfoto);
  4. $arrayfoto = mysql_fetch_array($queryfoto);
  5. $consiguefoto = $arrayfoto['rutaarchivo'];
  6.  
  7. // BIEN (un loop para extraer todos)
  8. $darfoto = "SELECT * FROM foto WHERE idpublicacion = $idconseguido";
  9. $queryfoto = mysql_query($darfoto);
  10.  
  11. while ($arrayfoto = mysql_fetch_array($queryfoto)) {
  12.   $consiguefoto = $arrayfoto['rutaarchivo'];
  13.   echo $consiguefoto;
  14. }

Te sugiero consultar un manual al respecto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 07/07/2016, 23:09
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Array dentro de otro array

Cita:
Iniciado por pateketrueke Ver Mensaje
El tema es que necesitas un loop while() para sacar cada uno de los registros de la consulta, así como lo haces consigues un sólo registro a la vez.

No puedes iterar $arrayfoto porque no contiene todos los registros, eso te lo has imaginado.

Básicamente debes hacer esto:
Código PHP:
Ver original
  1. // MAL (sólo extraes un registro a la vez)
  2. $darfoto = "SELECT * FROM foto WHERE idpublicacion = $idconseguido";
  3. $queryfoto = mysql_query($darfoto);
  4. $arrayfoto = mysql_fetch_array($queryfoto);
  5. $consiguefoto = $arrayfoto['rutaarchivo'];
  6.  
  7. // BIEN (un loop para extraer todos)
  8. $darfoto = "SELECT * FROM foto WHERE idpublicacion = $idconseguido";
  9. $queryfoto = mysql_query($darfoto);
  10.  
  11. while ($arrayfoto = mysql_fetch_array($queryfoto)) {
  12.   $consiguefoto = $arrayfoto['rutaarchivo'];
  13.   echo $consiguefoto;
  14. }

Te sugiero consultar un manual al respecto.
Gracias por responder, y para acceder a cada uno?

Me devuelve este error al poner el código como lo inserto abajo, supongo que es por el numero de resultados porque si le pongo 0 no me devuelve nada:

Notice: Undefined offset: 2 in C:\xampp\htdocs\edit.php on line 109

Notice: Undefined offset: 2 in C:\xampp\htdocs\edit.php on line 109

Acá si me muestra el resultado de la 3era imagen
imagen.JPG

Deje así el código y cuando no le agrego el [2] si me devuelve las 3 que estan registradas con ese id

Código PHP:
Ver original
  1. while ($arrayfoto = mysql_fetch_array($queryfoto)) {
  2.   $consiguefoto[] = $arrayfoto['rutaarchivo'];
  3.   echo $consiguefoto[2];
  4. }
  #5 (permalink)  
Antiguo 07/07/2016, 23:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Array dentro de otro array

¿Al menos entiendes lo que sucede en el código que hiciste?

Porque mientras no sepas lo que haces, y pongas código aleatorio sin comprender cómo funciona entonces jamás vas a poder resolver nada:

Código PHP:
Ver original
  1. // MAL
  2. while ($arrayfoto = mysql_fetch_array($queryfoto)) {
  3.   // ¿por qué haces esto? ¿por qué quieres tratar el valor como array? ¡no tiene sentido!
  4.   $consiguefoto[] = $arrayfoto['rutaarchivo'];
  5.   echo $consiguefoto[2];
  6. }
  7.  
  8. // BIEN
  9. while ($arrayfoto = mysql_fetch_array($queryfoto)) {
  10.   // no es necesario el [] (a menos que sepas al 100% lo que haces)
  11.   $consiguefoto = $arrayfoto['rutaarchivo'];
  12.  
  13.   // no hace falta nada más
  14.   echo $consiguefoto;
  15. }

Por favor, observa y analiza bien los ejemplos, no es correcto que escribas código que no entiendes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 07/07/2016, 23:16
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Array dentro de otro array

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Al menos entiendes lo que sucede en el código que hiciste?

Porque mientras no sepas lo que haces, y pongas código aleatorio sin comprender cómo funciona entonces jamás vas a poder resolver nada:

Código PHP:
Ver original
  1. // MAL
  2. while ($arrayfoto = mysql_fetch_array($queryfoto)) {
  3.   // ¿por qué haces esto? ¿por qué quieres tratar el valor como array? ¡no tiene sentido!
  4.   $consiguefoto[] = $arrayfoto['rutaarchivo'];
  5.   echo $consiguefoto[2];
  6. }
  7.  
  8. // BIEN
  9. while ($arrayfoto = mysql_fetch_array($queryfoto)) {
  10.   // no es necesario el [] (a menos que sepas al 100% lo que haces)
  11.   $consiguefoto = $arrayfoto['rutaarchivo'];
  12.  
  13.   // no hace falta nada más
  14.   echo $consiguefoto;
  15. }

Por favor, observa y analiza bien los ejemplos, no es correcto que escribas código que no entiendes.
La verdad me confundí con tantas cosas que leí, pero ok, si necesito acceder al resultado número 3 como lo hago? cuando lo pongo de esa manera me devuelve los 3 resultados que están..

Mil gracias.
  #7 (permalink)  
Antiguo 07/07/2016, 23:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Array dentro de otro array

Cita:
La verdad me confundí con tantas cosas que leí, pero ok, si necesito acceder al resultado número 3 como lo hago? cuando lo pongo de esa manera me devuelve los 3 resultados que están..
Es que entonces son cosas diferentes:

1. Extraes todos los registros
2. Accedes a los valores acumulados

Código PHP:
Ver original
  1. $darfoto = "SELECT * FROM foto WHERE idpublicacion = $idconseguido";
  2. $queryfoto = mysql_query($darfoto);
  3.  
  4. // array "acumulador"
  5. $fotos = array();
  6.  
  7. while ($arrayfoto = mysql_fetch_array($queryfoto)) {
  8.   // acumulamos cada valor (sin imprimirlo)
  9.   $fotos []= $arrayfoto['rutaarchivo'];
  10. }
  11.  
  12. echo $fotos[0];
  13. echo $fotos[1];
  14. echo $fotos[2];

Es decir, no puedes hacer todo en el mismo lugar, para eso debes dar orden a lo que escribes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 07/07/2016, 23:21
 
Fecha de Ingreso: enero-2016
Ubicación: Venezuela
Mensajes: 139
Antigüedad: 8 años, 3 meses
Puntos: 3
Respuesta: Array dentro de otro array

Muchísimas gracias, ya ha sido más de una vez que me has salvado

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




La zona horaria es GMT -6. Ahora son las 23:28.