Foros del Web » Programando para Internet » PHP »

matriz de imagenes

Estas en el tema de matriz de imagenes en el foro de PHP en Foros del Web. Hola a todos. me surge un problema al intentar dibujar una matriz de imagenes. Lo que pasa es que tengo que pintar las fotografias de ...
  #1 (permalink)  
Antiguo 24/06/2011, 15:07
 
Fecha de Ingreso: mayo-2011
Mensajes: 105
Antigüedad: 13 años
Puntos: 3
Pregunta matriz de imagenes

Hola a todos. me surge un problema al intentar dibujar una matriz de imagenes.
Lo que pasa es que tengo que pintar las fotografias de los asistentes a un evento en especifico. Cada asistente mediante un enlace confirma su asistencia al evento.

Luego debo mostrar las fotografias de los asistentes en una matriz de 10 columnas por n filas.

Lo que quiero es que cada 10 fotografias se haga otra fila y continue dibujando de 10 en 10.

La forma en que lo estoy haciendo es asi:

Código PHP:
function CargarAsistentes ($idevento$conn){

$sqlasistentes "select b.imagen from tbasistencia a inner join tbcuenta b inner join tbevento c where a.codigo = b.codigo and a.idevento = ".$idevento." group by b.imagen ";
$resultado mysql_query($sqlasistentes,$conn);
$conteo mysql_num_rows($resultado);

echo 
$conteo;
echo 
"<table border = 2>";

if(
$conteo == 0){
echo 
"
<tr>
<td><font face = arial size = 2><b>¡A&uacute;n no hay asistentes para este evento, s&eacute; el primero en asistir!</font></td>
</tr>
"
;    
}

else{

do{
echo 
"<tr>";
for (
$i 0$i <= $conteo$i++){
while (
$filas mysql_fetch_array($resultado)){
echo 
"<td><img src = '".$filas['0']."' width=30 height=30 /></td>";
}
}
//fin for
echo "</tr>";
$conteo $conteo 1;

}
// fin do
while($conteo 0);

}
//fin else

echo "</table>";
}
// fin fucntion 
Pero me muestra los asistentes en una sola fila y nunca me los separa de 10 en 10 a pesar de que el numero de asistentes con el que estoy probando el codigo es 12.

Me ayudan con esta logica?
  #2 (permalink)  
Antiguo 24/06/2011, 15:20
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: matriz de imagenes

deberías hacer un do y un for en vez de un while, algo así:

Código PHP:
Ver original
  1. echo"<table>";
  2. do{
  3. echo "<tr>";
  4. $continue=false; // con esto le diremos al while que termine si no hay mas
  5. for($f=1;$f<10 and $filas = mysql_fetch_array($resultado);$f++){ // aquí definimos que son 10 filas pero se detendrá si no hay más.
  6. $continue=true; //y aquí le decimos que siga
  7. echo "<td><img src = '".$filas['0']."' width=30 height=30 /></td>";
  8. }
  9. echo "</tr>";
  10. }($continue);
  11. echo "</table>";

no lo he probado, puede que tenga errores, pero esa es la lógica que uso en esos casos :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 24/06/2011, 15:22
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: matriz de imagenes

Hola que tal.

Haber prueba con esto y comentas.

Código PHP:
Ver original
  1. <?php
  2. function CargarAsistentes ($idevento, $conn){
  3.  
  4. $sqlasistentes = "select b.imagen from tbasistencia a inner join tbcuenta b inner join tbevento c where a.codigo = b.codigo and a.idevento = ".$idevento." group by b.imagen ";
  5. $resultado = mysql_query($sqlasistentes,$conn);
  6. $conteo = mysql_num_rows($resultado);
  7.  
  8. echo "<table border = 2>";
  9.     if($conteo == 0){
  10.         echo "
  11.         <tr>
  12.         <td><font face = arial size = 2><b>¡A&uacute;n no hay asistentes para este evento, s&eacute; el primero en asistir!</font></td>
  13.         </tr>
  14.         ";    
  15.     }else{
  16.         echo "<tr>";
  17.         $x=0;
  18.         while ($filas = mysql_fetch_row($resultado)){
  19.             $x=$x+1;
  20.                 if($x%10==0){
  21.                     echo "</tr><tr><td><img src = '".$filas[0]."' width=30 height=30 /></td>";
  22.                 }else{
  23.                     echo "<td><img src = '".$filas[0]."' width=30 height=30 /></td>";
  24.                 }
  25.         }
  26.         echo "</tr>";
  27. }//fin else
  28.  
  29. echo "</table>";
  30. }// fin fucntion
  31. ?>

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #4 (permalink)  
Antiguo 24/06/2011, 15: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: matriz de imagenes

Te paso un ejemplo que puedes adaptar sin problemas:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $array = array(1,2,3,4,3,2,3,4,3,4,5,6,6,5,6,7,8,7,8,9,8,7,6,5,4);
  4.  
  5. $cols = 10;
  6.  
  7. $output = "<table>";
  8. for($i = 1; $i<count($array); $i++){
  9.     if($i%$cols==1) $output .="<tr>";
  10.     $output .="<td>$i</td>";
  11.     if($i%$cols==0) $output .="</tr>";
  12. }
  13. $output .= "</table>";
  14. echo $output;
  15.  
  16. ?>

Salu2,
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 24/06/2011, 16:09
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: matriz de imagenes

vaya, esas 2 están mejores que las mia, +karma!

buena idea usar el mod
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #6 (permalink)  
Antiguo 25/06/2011, 15:12
 
Fecha de Ingreso: mayo-2011
Mensajes: 105
Antigüedad: 13 años
Puntos: 3
Respuesta: matriz de imagenes

excelente amigos!!! todos unos maestros de la logica!! les doy +1 karma a todos por tomarse el tiempo de responder y proponer su ayuda!!!

me quede con el codigo de skiper0125.

Etiquetas: imagenes_en_php, matriz_imagenes
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 04:23.