Foros del Web » Programando para Internet » PHP »

Ayuda para mezclar estas 2 instrucciones

Estas en el tema de Ayuda para mezclar estas 2 instrucciones en el foro de PHP en Foros del Web. Pues resulta que tengo el siguiente problema... debo realizar una consulta a la una base de datos, estos resultados debe mostrarlos de forma aleatoria en ...
  #1 (permalink)  
Antiguo 26/10/2008, 16:19
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 20 años, 5 meses
Puntos: 4
Ayuda para mezclar estas 2 instrucciones

Pues resulta que tengo el siguiente problema... debo realizar una consulta a la una base de datos, estos resultados debe mostrarlos de forma aleatoria en cada consulta luego introducirlos en una tabla..

Puedo hacer ambas consultas
Consulta y mostrar en forma aleatoria
Código php:
Ver original
  1. $sql = "SELECT * FROM galerias ORDER BY RAND() ";
  2. $buscar = @mysql_query($sql , $conexion);
  3. while ($listado  = @mysql_fetch_array($buscar))
  4. {
  5.         echo "<a href=\"imagenes.php?codigo=$listado[id]\"><img border=\"0\" src=\"images/".$listado[carpeta]."/front-mini.jpg\"/></a><br>";
  6.  
  7. }

Tabla Dinamica

Código php:
Ver original
  1. // En este modo, notamos que abrimos un <tr> inicial...
  2. // ...que extraño no?
  3. echo '<table style="border: 1px inset" border="1"><tr>';
  4. $columnas = 4;
  5. $filas = 6;
  6. $inicial = 0;
  7. $total = 32; // total?
  8. while ($inicial < $total)
  9. {
  10.   echo '<td>';
  11.   // rutinas...
  12.   echo "imagen";
  13.   echo '</td>';
  14.   // break!
  15.   if (++$inicial == $columnas)
  16.   {
  17.         if (!(--$filas))
  18.       {
  19.          break;
  20.       }  
  21.    // cerramos y continuamos...
  22.     echo '</tr><tr>';
  23.     $inicial=0; // debemos resetear!!!
  24.   }
  25. }
  26. // cerramos ambos...
  27. echo '</tr></table>';

Pues el codigo de la tabla lo saque de aqui de las faqs, es vital que sea asi ya que el tamaño de la tabla sera regido por la cantidad de datos y otras cosas... por eso este codigo es ideal... pero no se como hacer para rellenarlos con las imagenes de la consulta de la base de datos...

Alguna idea????
  #2 (permalink)  
Antiguo 26/10/2008, 16:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ayuda para mezclar estas 2 instrucciones

Hola Pax-Man,

Donde dice // rutinas, es donde debes de poner la lógica de tu aplicación para descargar los datos de tu base de datos e insertarlos en tu tabla.

Saludos.
  #3 (permalink)  
Antiguo 26/10/2008, 17:06
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 20 años, 5 meses
Puntos: 4
Respuesta: Ayuda para mezclar estas 2 instrucciones

el problema esta es en que si yo simplemente introdusco la consulta tal cual como esta, entre donde debe ir la rutina

queda algo asi:

Código php:
Ver original
  1. // En este modo, notamos que abrimos un <tr> inicial...
  2. // ...que extraño no?
  3. echo '<table style="border: 1px inset" border="1"><tr>';
  4. $columnas = 4;
  5. $filas = 6;
  6. $inicial = 0;
  7. $total = 32; // total?
  8. while ($inicial < $total)
  9. {
  10. * echo '<td>';
  11. * // rutinas...
  12. * $sql = "SELECT * FROM galerias ORDER BY RAND() ";
  13. $buscar = @mysql_query($sql , $conexion);
  14. while ($listado *= @mysql_fetch_array($buscar))
  15. {
  16. * * * * echo "<a href=\"imagenes.php?codigo=$listado[id]\"><img border=\"0\" src=\"http://www.forosdelweb.com/images/".$listado[carpeta]."/front-mini.jpg\"/></a><br>";
  17. *
  18. }
  19.  
  20. * echo '</td>';
  21. * // break!
  22. * if (++$inicial == $columnas)
  23. * {
  24. * * * * if (!(--$filas))
  25. * * * {
  26. * * * * *break;
  27. * * * } *
  28. * *// cerramos y continuamos...
  29. * * echo '</tr><tr>';
  30. * * $inicial=0; // debemos resetear!!!
  31. * }
  32. }
  33. // cerramos ambos...
  34. echo '</tr></table>';

En cada celda me arrojara todo el resultado de la consulta... y no llenara celda a celda con un valor de la consulta.. claro si elimino el while, arroja un resultado, pero repite resultados es decir en este caso, una imagen la puede llegar a mostrar varias veces.. en distintas celdas
  #4 (permalink)  
Antiguo 27/10/2008, 16:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ayuda para mezclar estas 2 instrucciones

Obviamente tienes que reemplazar el ciclo, recuerda que al final un while es lo mismo, lo que tu tienes que hacer es armar tu algoritmo correctamente para que en cada vuelta del while incrementes tu flag que carga el número para poder ir insertando las filas.

Solo es cuestión de que pienses un poco en como armar el proceso, te recomiendo hagas un diagrama de flujo de como es que tiene que ir moviendose tu programa y después intentes implementarlo.

Saludos.
  #5 (permalink)  
Antiguo 28/10/2008, 07:29
 
Fecha de Ingreso: noviembre-2003
Mensajes: 403
Antigüedad: 20 años, 5 meses
Puntos: 4
Respuesta: Ayuda para mezclar estas 2 instrucciones

justamente eso es lo que no logro dar
  #6 (permalink)  
Antiguo 28/10/2008, 07:35
 
Fecha de Ingreso: octubre-2008
Mensajes: 102
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Ayuda para mezclar estas 2 instrucciones

Cita:
Iniciado por Pax-Man Ver Mensaje
el problema esta es en que si yo simplemente introdusco la consulta tal cual como esta, entre donde debe ir la rutina

queda algo asi:

Código php:
Ver original
  1. // En este modo, notamos que abrimos un <tr> inicial...
  2. // ...que extraño no?
  3. echo '<table style="border: 1px inset" border="1"><tr>';
  4. $columnas = 4;
  5. $filas = 6;
  6. $inicial = 0;
  7. $total = 32; // total?
  8. while ($inicial < $total)
  9. {
  10. * echo '<td>';
  11. * // rutinas...
  12. * $sql = "SELECT * FROM galerias ORDER BY RAND() ";
  13. $buscar = @mysql_query($sql , $conexion);
  14. while ($listado *= @mysql_fetch_array($buscar))
  15. {
  16. * * * * echo "<a href=\"imagenes.php?codigo=$listado[id]\"><img border=\"0\" src=\"http://www.forosdelweb.com/images/".$listado[carpeta]."/front-mini.jpg\"/></a><br>";
  17. *
  18. }
  19.  
  20. * echo '</td>';
  21. * // break!
  22. * if (++$inicial == $columnas)
  23. * {
  24. * * * * if (!(--$filas))
  25. * * * {
  26. * * * * *break;
  27. * * * } *
  28. * *// cerramos y continuamos...
  29. * * echo '</tr><tr>';
  30. * * $inicial=0; // debemos resetear!!!
  31. * }
  32. }
  33. // cerramos ambos...
  34. echo '</tr></table>';

En cada celda me arrojara todo el resultado de la consulta... y no llenara celda a celda con un valor de la consulta.. claro si elimino el while, arroja un resultado, pero repite resultados es decir en este caso, una imagen la puede llegar a mostrar varias veces.. en distintas celdas
Todo esta dentro de un <td></td> por eso te arroja todo en una cerda.
  #7 (permalink)  
Antiguo 28/10/2008, 16:38
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Ayuda para mezclar estas 2 instrucciones

Lee esta FAQ: http://www.forosdelweb.com/f18/faqs-...00/#post240669

Saludos,
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 07:04.