Foros del Web » Programando para Internet » PHP »

[PROBLEMA]Me falta una imagen por linea

Estas en el tema de [PROBLEMA]Me falta una imagen por linea en el foro de PHP en Foros del Web. Tengo este script el cual me deberia mostrar 6 imagenes por cada linea pero solo me muestra 5. Es como si un registro de la ...
  #1 (permalink)  
Antiguo 07/06/2011, 03:15
 
Fecha de Ingreso: mayo-2011
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 4
[PROBLEMA]Me falta una imagen por linea

Tengo este script el cual me deberia mostrar 6 imagenes por cada linea pero solo me muestra 5. Es como si un registro de la base de datos perteneciente a fotos desapareciese

la forma de la tabla es

ideventos tituloevento fotos
81 titulo evento 1 x.jpg
82 titulo evento 1 x.jpg
83 titulo evento 1 x.jpg
84 titulo evento 1 x.jpg
85 titulo evento 1 x.jpg
86 titulo evento 1 x.jpg
88 titulo evento 2 x.jpg
89 titulo evento 2 x.jpg
90 titulo evento 2 x.jpg
91 titulo evento 2 x.jpg
92 titulo evento 2 x.jpg
93 titulo evento 2 x.jpg
Creo que me quita la primera lina de cada tituloevento.
Presumo que el fallo debe estar en el codigo, ¿alguna sugerencia?.
Gracias por ayudarme chicos.

Código PHP:
<?
include_once"db-cnx.php";
if(isset(
$_GET['enviar'])){
    
// asignamos los valores
    // a las variables que usaremos
   
    
    
}


$sqlevento mysql_query("SELECT tituloevento, fotos FROM eventos ORDER BY ideventos DESC"$db_link) or die(mysql_error);
 
 
?>        
<body bgcolor="#FFE821">
<center>
<font color="steelblue"><b>FOTOS DE ACTOS,CAMPEONATOS Y EQUIPOS</b></FONT>
</center>
<HR size="5" COLOR="NAVY">
<?
while($row mysql_fetch_row($sqlevento)){
    
$columns 6;
    
$numfotos=mysql_num_rows($sqlevento);
       echo
"<table>";
       
           echo
"<caption><font color='steelblue'><b>$row[0]</b></font></caption>";
           for(
$i 1$i 6$i++) {
              
      
$row mysql_fetch_row($sqlevento); 
          if(
$i $columns == 1) {
         echo 
"<tr>";
         }
         echo 
"<td width='' height=''><a href='imagesr2011/$row[1]'>"
        echo 
"<img src='imagesr2011/$row[1]' width='110' height='110'"
        echo 
" border=0>"
        echo 
""
        echo 
"</td>";
        if((
$i $columns) == 0) {
            
        echo 
"</tr>";
        
       } 
           
       }
        echo 
"</table>"
    echo
"<HR size='5' COLOR='NAVY'>";
         
}
?>
</body>
  #2 (permalink)  
Antiguo 07/06/2011, 03:44
Avatar de historiasdemaria  
Fecha de Ingreso: septiembre-2010
Ubicación: www
Mensajes: 433
Antigüedad: 14 años, 1 mes
Puntos: 54
Respuesta: [PROBLEMA]Me falta una imagen por linea

Cambia esta linea: for($i = 1; $i < 6; $i++)

y pon esta otra

Código PHP:
Ver original
  1. for($i = 1; $i <= 6; $i++)

a ver,

es un problema de algoritmo no de php

:)
  #3 (permalink)  
Antiguo 07/06/2011, 06:40
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: [PROBLEMA]Me falta una imagen por linea

anja, parece ser eso, comentanos
  #4 (permalink)  
Antiguo 07/06/2011, 07:24
 
Fecha de Ingreso: mayo-2011
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: [PROBLEMA]Me falta una imagen por linea

Si pongo eso:
for($i = 1; $i <= 6; $i++)
entonces me mete en tituloevento 3 una foto de tituloevento 2. 2 fotos de tituloevento 1 pasan a tituloevento 2 y finalmente tituloevento 1 se queda con 3 huecos vacios.
No se como solucionar esto
  #5 (permalink)  
Antiguo 07/06/2011, 07:33
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: [PROBLEMA]Me falta una imagen por linea

para que usas la variable $numfotos ?????
  #6 (permalink)  
Antiguo 08/06/2011, 04:31
Avatar de historiasdemaria  
Fecha de Ingreso: septiembre-2010
Ubicación: www
Mensajes: 433
Antigüedad: 14 años, 1 mes
Puntos: 54
Respuesta: [PROBLEMA]Me falta una imagen por linea

Bien, la cosa esta mal de base..

Segun estoy viendo 1 evento tiene 6 fotos? Eso es lo que quieres decir con: 6 imagenes en cada linea
en ese caso necesitas 2 tablas: eventos y fotos_eventos
Donde 1 evento tiene N fotos

Esplica mejor lo que quieres hacer, pues creo que el planteamiento esta mal desde el principio

:)
  #7 (permalink)  
Antiguo 08/06/2011, 06:14
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: [PROBLEMA]Me falta una imagen por linea

claro, pon tus tablas para ver bien
  #8 (permalink)  
Antiguo 08/06/2011, 08:25
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 4 meses
Puntos: 641
Respuesta: [PROBLEMA]Me falta una imagen por linea

El problema puede ser que dentro del while que recorre tus resultados vuelves a hacer una consulta:

Código PHP:
Ver original
  1. while($row = mysql_fetch_row($sqlevento)){//primera llamada
  2.     $columns = 6;
  3.     $numfotos=mysql_num_rows($sqlevento);
  4.        echo"<table>";
  5.        
  6.            echo"<caption><font color='steelblue'><b>$row[0]</b></font></caption>";
  7.            for($i = 1; $i < 6; $i++) {
  8.              
  9.       $row = mysql_fetch_row($sqlevento);  //segunda llamada

lo que afecta el puntero del array
  #9 (permalink)  
Antiguo 08/06/2011, 08:35
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: [PROBLEMA]Me falta una imagen por linea

anja, eso no lo puedes hacer pq pierdes datos,
dentro del ciclo crea otra conexion y otra consulta que obtendrás con con un $row2
  #10 (permalink)  
Antiguo 08/06/2011, 09:38
 
Fecha de Ingreso: mayo-2011
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: [PROBLEMA]Me falta una imagen por linea

[QUOTE=memoadian;3885368]El problema puede ser que dentro del while que recorre tus resultados vuelves a hacer una consulta:

Código PHP:
Ver original
  1. while($row = mysql_fetch_row($sqlevento)){//primera llamada
  2.     $columns = 6;
  3.     $numfotos=mysql_num_rows($sqlevento);
  4.        echo"<table>";
  5.        
  6.            echo"<caption><font color='steelblue'><b>$row[0]</b></font></caption>";
  7.            for($i = 1; $i < 6; $i++) {
  8.              
  9.       $row = mysql_fetch_row($sqlevento);  //segunda llamada

lo que afecta el puntero del [QUOTE]

Es este el problema pierdo el primer dato por hacer de nuevo otra llamada.como deberia de hacer entonces para sacar las 6 imagenes correspondientes a cada tituloevento sin perder ninguna? iviamontes creo que esa sera la solucion pero como lo formulo?
  #11 (permalink)  
Antiguo 08/06/2011, 09:42
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: [PROBLEMA]Me falta una imagen por linea

no puedes hacer una nueva consulta dentro del ciclo donde analizas la primera con la misma conexion y registros, tienes q hacer una nueva

esto
conexion1
$result = consulta1
while ($row = mysql_fetch_array($result))
{
conexion2
$result2 = consulta2
while ($row2 = mysql_fetch_array($result2))
{
lo que quieras con row y row2
}
}
  #12 (permalink)  
Antiguo 08/06/2011, 10:38
 
Fecha de Ingreso: mayo-2011
Mensajes: 33
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: [PROBLEMA]Me falta una imagen por linea

Cita:
Iniciado por iviamontes Ver Mensaje
no puedes hacer una nueva consulta dentro del ciclo donde analizas la primera con la misma conexion y registros, tienes q hacer una nueva

esto
conexion1
$result = consulta1
while ($row = mysql_fetch_array($result))
{
conexion2
$result2 = consulta2
while ($row2 = mysql_fetch_array($result2))
{
lo que quieras con row y row2
}
}
la idea seria un segundo mysql_query y de ahi sacar las imagenes,no?
probare y os digo.
muchas gracias

Etiquetas: falta, linea
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 03:56.