Foros del Web » Programando para Internet » PHP »

Que muestre 2 fotos por columnas

Estas en el tema de Que muestre 2 fotos por columnas en el foro de PHP en Foros del Web. Que tal.. Tengo un script que muestra fotos de una bd mysql... pero las fotos se van mostrando para abajo.. y yo quiero que muestre ...
  #1 (permalink)  
Antiguo 28/04/2008, 15:11
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 9 meses
Puntos: 4
Que muestre 2 fotos por columnas

Que tal..

Tengo un script que muestra fotos de una bd mysql...
pero las fotos se van mostrando para abajo.. y yo quiero que muestre 2 por columna y luego las otras dos y asii...

Y no se como hacerloo :s

este es mi codigo que muestra las fotos:

Código PHP:
     <?
while ($row mysql_fetch_array($resultado)) {
$id $row["id"];
echo 
" <tr>
            <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$id' width='182' height='154'></TD>
            </tr>"
;
          }
          
?>
Como le haria ??

saludos y gracias!
__________________
*La amistad se multiplica cuando se divide*
  #2 (permalink)  
Antiguo 28/04/2008, 16:31
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años
Puntos: 43
Re: Que muestre 2 fotos por columnas

en las faq ahi un ejemplo de como mostrar resultados en varias columnas
  #3 (permalink)  
Antiguo 28/04/2008, 17:31
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 18 años, 4 meses
Puntos: 5
Re: Que muestre 2 fotos por columnas

según lo que entendi.
quieres una tabla con N filas y 2 columnas.
bueno si es asi se ve sencillo
Código PHP:
echo "<table>";
while (
$row mysql_fetch_array($resultado)) {
$id $row["id"];
  if(
$id <> $idAux and $idAux!=""){
    echo 

      <tr>
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$id' width='182' height='154'></TD>
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$idAux' width='182' height='154'></TD>
      </tr>"
;
    unset(
$idAux);
  }
  
$idAux $id;
}
echo 
"</table>"
suerte
__________________
~~[FiDeLio]~~
  #4 (permalink)  
Antiguo 28/04/2008, 17:55
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 9 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

que tal,
si funciono respecto a lo de dos fotos por columna .. pero no se porque repite fotos..
checalo aqui:

http://franco-asociados.com/fotosprueba.php?codigo=9714

saludos y gracias
__________________
*La amistad se multiplica cuando se divide*
  #5 (permalink)  
Antiguo 28/04/2008, 18:12
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 18 años, 4 meses
Puntos: 5
Re: Que muestre 2 fotos por columnas

mira lo hice sin probar el codigo, pero mira que se pare la imagenes

imagen_id - imagen_idAux -> 1º ciclo
imagen_id - imagen_idAux -> 2º ciclio
imagen_id - imagen_idAux -> 3º ciclo

en el 2º ciclo la Aux sige con el id, entonces no deberia mostrar ese ciclo, el problema esta en la condicon me parese, por ultimo cambialo por un $sw tue y false

Código PHP:
echo "<table>";
$sw    false;
while (
$row mysql_fetch_array($resultado)) {
$id $row["id"];
  if(
$sw true){
    echo 

      <tr>
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$id' width='182' height='154'></TD>
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$idAux' width='182' height='154'></TD>
      </tr>"
;
    
$sw  =  false;
  }else{
    
$sw  =  true;
    
$idAux  =  $id;
  }
}
echo 
"</table>"
espero que sea eso, prueba-error, pero por ahi esta la solucion (no fue tan facil como crei :D)
__________________
~~[FiDeLio]~~
  #6 (permalink)  
Antiguo 28/04/2008, 18:35
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 9 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

mm no funciono pero gracias... puede ver como quedó con tu ejemplo:

http://franco-asociados.com/fotosprueba.php?codigo=9714

me podrias explicar como funciona tu script que hiciste mas o menos para entender y yo poder ayudar igual en algo jajaj esque como que no entiendo que se hizo

saludos y gracias
__________________
*La amistad se multiplica cuando se divide*
  #7 (permalink)  
Antiguo 28/04/2008, 18:53
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 18 años, 4 meses
Puntos: 5
Re: Que muestre 2 fotos por columnas

mmm, pusha que mala.
insisto no lo he estado probando, pero te explico la logica una de esas lo haces tu.

tenomos N imagenes N = 10
por lo tanto tu while va hacer 10 vueltas, recorriendo cada registro,
la idea es mostrar la mitad, es decir, 5 echo.
en cada echo muestra 2 imagenes. la imagen actual $row["id"] y el Id anterior.

la primera vuelra el $idAux es nulo o esta en blanco, entonces no muestra nada.
al terminar el while el idAux se carga con el id leido (el que no se mostro)

en la segunda vuelta muestra el id actual y el idAux (el id anterior).

tercera vuelta no debe mostar nada y el idAux es cargado con el Id leido.

cuarta vuelta lo mismo que la 2º

5 lo mismo que 3º

6 lo mismo que la 4º

etc..

voy a intentar de programarlo. en mi pc. y tu suno el codigo
__________________
~~[FiDeLio]~~
  #8 (permalink)  
Antiguo 28/04/2008, 18:58
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 9 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

jajaj no te entedi :( pero algun dia lo comprendere :)
jajaj
gracias por tratar de hacer el codigo en tu pc :) jajaja
graciias:)
__________________
*La amistad se multiplica cuando se divide*
  #9 (permalink)  
Antiguo 28/04/2008, 19:00
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 18 años, 4 meses
Puntos: 5
Re: Que muestre 2 fotos por columnas

jajajajaj, lo hice
el problema, es q le falto un else
este codigo te sirvira
Código PHP:
while ($row mysql_fetch_array($resultado)) {
$id $row["id"];
  if(
$id <> $idAux and $idAux!=""){
    echo 

      <tr>
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$id' width='182' height='154'></TD>
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$idAux' width='182' height='154'></TD>
      </tr>"
;
    unset(
$idAux);
  }else{
      
$idAux $id;
  }
}
echo 
"</table>"
__________________
~~[FiDeLio]~~
  #10 (permalink)  
Antiguo 28/04/2008, 19:01
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 18 años, 4 meses
Puntos: 5
Re: Que muestre 2 fotos por columnas

pero si te das cuenta estube serca
__________________
~~[FiDeLio]~~
  #11 (permalink)  
Antiguo 28/04/2008, 19:03
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 9 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

sii jajaj eres muy bueno en esto :)
espero tu proximo codigo a vdd ajjajaja
saludos :)
__________________
*La amistad se multiplica cuando se divide*
  #12 (permalink)  
Antiguo 29/04/2008, 13:35
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 9 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

que tal...
alguien tiene alguna otra solucion ?
__________________
*La amistad se multiplica cuando se divide*
  #13 (permalink)  
Antiguo 03/05/2008, 15:29
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 9 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

Cita:
Iniciado por .php Ver Mensaje
jajajajaj, lo hice
el problema, es q le falto un else
este codigo te sirvira
Código PHP:
while ($row mysql_fetch_array($resultado)) {
$id $row["id"];
  if(
$id <> $idAux and $idAux!=""){
    echo 

      <tr>
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$id' width='182' height='154'></TD>
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$idAux' width='182' height='154'></TD>
      </tr>"
;
    unset(
$idAux);
  }else{
      
$idAux $id;
  }
}
echo 
"</table>"
Que tal,
probe este script ,, (jaja que quien sabe porque no lo habia probado ) y me di cuenta que si funcionaa !!!

gracias!!

Peroo... jaja hay un problemita...
Tengo 6 imagenes, perfecto me muestra dos en cada columna..
Pero cuando tengos imagenes impares, por ejemplo 5..
las primeras 4 las muestra y la ultima si no ...
no se por que hace eso ..

saludos y gracias
__________________
*La amistad se multiplica cuando se divide*
  #14 (permalink)  
Antiguo 03/05/2008, 16:23
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 7 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

Cita:
Iniciado por reimonfranco Ver Mensaje
...
Pero cuando tengos imagenes impares, por ejemplo 5..
las primeras 4 las muestra y la ultima si no ...
no se por que hace eso ..
Pues porque el código está diseñado para poner las imágenes de dos en dos. En el caso de la 5, la variable idAux está vacia y por tanto al no cumplirse la condición del if pues no hace el echo.

Hay otras formas, como por ejemplo ir mirando si es elemento par o impar, para poner fin de fila o inicio de fila....
  #15 (permalink)  
Antiguo 03/05/2008, 16:38
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 9 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

Cita:
Iniciado por a2a2 Ver Mensaje
Pues porque el código está diseñado para poner las imágenes de dos en dos. En el caso de la 5, la variable idAux está vacia y por tanto al no cumplirse la condición del if pues no hace el echo.

Hay otras formas, como por ejemplo ir mirando si es elemento par o impar, para poner fin de fila o inicio de fila....
y como le haria para cuando saber si es impar o par?

saludos
__________________
*La amistad se multiplica cuando se divide*
  #16 (permalink)  
Antiguo 04/05/2008, 01:03
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 7 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

Cita:
Iniciado por reimonfranco Ver Mensaje
y como le haria para cuando saber si es impar o par?

saludos
Pues necesitas una variable (vez) que incrementes en cada iteración del bucle, y luego le haces el módulo dos: mod = ( vez % 2)
Si la primera iteración la empiezas en 1, cuando mod es 1 debes poner inicio de fila y la foto izquierda y cuando mod es 0 debes poner la foto derecha y fin de fila.
Luego al salir del bucle debes comprobar si te hace falta poner fin de fila o no.
  #17 (permalink)  
Antiguo 04/05/2008, 10:47
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 9 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

Muchas gracias por tu respuesta
Pero la verdad es que no entendi...

Tu te refieres a que haga esto: ¿?
-----------------------------------------------------------

$vez = 0;
while ($row = mysql_fetch_array($resultado)) {
$vez++
if(mod=(vez %2)) {
$id = $row["id"];
if($id <> $idAux and $idAux!=""){
echo "
<tr>
<TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$id' width='182' height='154'></TD>
<TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$idAux' width='182' height='154'></TD>
</tr>";
unset($idAux);
}else{
$idAux = $id;
}
}
}
echo "</table>";

-----------------------------------------------------------

Jaja, la verdad es que no entendi mucho, solo lo que está en negritas puse, y no se si está bién...

Como podria hacer lo de las tablas ponerlo a la izquierda y todo eso que dices....
Y otra duda este signo % para que sirve , o en este caso, para que lo utilizamos...

Saludos y muchas gracias
__________________
*La amistad se multiplica cuando se divide*
  #18 (permalink)  
Antiguo 04/05/2008, 12:57
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 7 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

Lo siento, pero ya lo he explicado lo mejor que he podido.
No te lo tomes mal, pero creo que te conviene aprender nociones básicas de programación.
No voy a hacer el trabajo de codificarlo para tí. A la larga me agredecerás que sepas hacer las cosas por ti mismo sin necesidad de que te las hagan los demás.
  #19 (permalink)  
Antiguo 04/05/2008, 13:06
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 9 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

Muchas gracias ,
Creo que tienes razon asi me motivare a aprender mas
De todas maneras muchas gracias por todo, y estoy seguro que cualquier duda yo la posteare aqui jajaja
gracias
__________________
*La amistad se multiplica cuando se divide*
  #20 (permalink)  
Antiguo 04/05/2008, 13:18
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 18 años, 4 meses
Puntos: 5
Re: Que muestre 2 fotos por columnas

el mismo codigo, pero averigua cuantas filas tiene tu cinsukta y se llega a la ultima muestra el <td> sin importar si es par o no o si la idAux esta vacia

Código PHP:
$contador   0;
$num_filas  mysql_num_rows($resultado);
while (
$row mysql_fetch_array($resultado)) {
$id $row["id"];
  if((
$id <> $idAux and $idAux!="") or ($contador == $num_filas)){
    echo 

      <tr>
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$id' width='182' height='154'></TD>
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$idAux' width='182' height='154'></TD>
      </tr>"
;
    unset(
$idAux);
  }else{
      
$idAux $id;
  }
  
$contador++;
}
echo 
"</table>"
ojala que funcione a la primera, no he provado el codigo, casi nunca compilo
__________________
~~[FiDeLio]~~
  #21 (permalink)  
Antiguo 04/05/2008, 14:39
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 9 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

Que tal,

El codigo funciono bien

Solo cambie de posición el contador++

Código PHP:
$contador   0
$num_filas  mysql_num_rows($resultado); 
echo 
$num_filas;
while (
$row mysql_fetch_array($resultado)) { 
 
$contador++; 
$id $row["id"]; 
  if((
$id <> $idAux and $idAux!="") or ($contador == $num_filas)){ 
  
$ver "ver.php?id=$id";
  
$ver2 "ver.php?id=$idAux";
    echo 
"
      <tr> 
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='$ver' width='182' height='154'></TD> 
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='$ver2' width='182' height='154'></TD> 
      </tr>"

    unset(
$idAux); 
  }else{ 
      
$idAux $id
  } 

Pero solo este problema, me muestra las 7 pero alado --> muestra una imagen de esas ya saben, de las como que no se visualizan, donde sale una x...

Estuve viendo y probando muchas formas de quitar eso que sale ,, pero ya no se que mas hacer...

He pensado hacer una imagen que si sea imagen jajaj pero que esté en blanco, osea que no tenga nada...

Pero estuve probando, y no se en que parte del codigo ponerlo porque como es un bucle ,, repite la imagen y aparte muestra la otra,,,

Entonces ese es el unico problema y ya estoy asi

PERO MUCHAS GRACIAS
__________________
*La amistad se multiplica cuando se divide*
  #22 (permalink)  
Antiguo 04/05/2008, 15:22
 
Fecha de Ingreso: marzo-2008
Mensajes: 303
Antigüedad: 16 años, 7 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

Cita:
Iniciado por .php Ver Mensaje
el mismo codigo, pero averigua cuantas filas tiene tu cinsukta y se llega a la ultima muestra el <td> sin importar si es par o no o si la idAux esta vacia

Código PHP:
$contador   0;
$num_filas  mysql_num_rows($resultado);
while (
$row mysql_fetch_array($resultado)) {
$id $row["id"];
  if((
$id <> $idAux and $idAux!="") or ($contador == $num_filas)){
    echo 

      <tr>
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$id' width='182' height='154'></TD>
        <TD width='283' height='158' ALIGN='CENTER' valign='top'><img src='ver.php?id=$idAux' width='182' height='154'></TD>
      </tr>"
;
    unset(
$idAux);
  }else{
      
$idAux $id;
  }
  
$contador++;
}
echo 
"</table>"
ojala que funcione a la primera, no he provado el codigo, casi nunca compilo
Si lo piensas un poco verás que tu código no va a funcionar bien ya que en cada bucle SIEMPRE PONES DOS imágenes y si el numero total de imagenes es impar o bien te talta una o bien te sobra una. Es una simple cuestión de concepto.
Piensa por ejemplo que pasa con tu código cuando solo tienes una imagen que mostrar.
  #23 (permalink)  
Antiguo 04/05/2008, 15:33
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 9 meses
Puntos: 4
Re: Que muestre 2 fotos por columnas

pues nimodo jajaja
lo tendre que dejar asi :(
__________________
*La amistad se multiplica cuando se divide*
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 12:53.