Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mostrar registros (fotos) en 2 columnas

Estas en el tema de Mostrar registros (fotos) en 2 columnas en el foro de PHP en Foros del Web. Amigos, yo sé que este tema lo han tratado en anteriores ocasiones y de hecho hay posts con ejemplos y todo, pero a decir verdad ...
  #1 (permalink)  
Antiguo 15/05/2009, 06:21
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 1 mes
Puntos: 14
Pregunta Mostrar registros (fotos) en 2 columnas

Amigos,

yo sé que este tema lo han tratado en anteriores ocasiones y de hecho hay posts con ejemplos y todo, pero a decir verdad ninguno de ellos me sastisfizo luego de estudiarlos y emplearlos. Uno de los códigos me sirve, me muestra las fotos que tengo registradas (en enlaces) en mi BdD MySQL ... pero me las muestra en una columna. Lo que quiero es lograr esto mismo que tengo en la Web de unos amigos; la extensión del documento es php, pero no lee base de datos ni nada; la página está en html y quiero pasarla al paradigma dinámico.

He hecho pruebas con la misma, pero ya con la programación php. El código es el siguiente:

Código PHP:
<?php 
$link 
mysql_connect("localhost""root""password");
mysql_select_db("base_de_datos"$link);
 
$query="SELECT Nombre, Cargo, Foto FROM directores ";
$rst=mysql_query($query) or die(mysql_error());
$Maximo=3;
$Contador 0;
 while (
$row=mysql_fetch_assoc($rst)) {
echo 
"<table border='1' cellpadding='0' cellspacing='0' width='507' align='center'>";
echo 
"<tr><td  colspan='2' width='10%'><img src='../uploads/directores/th$row[Foto]' /><br>$row[Nombre]<br>$row[Cargo]</td>";
$Contador++;
if (
$Contador == $Maximo) {
echo 
"</tr></table>";
$Contador 0;
}
}
?>
Bueno, el tema es que me muestra todo en una sola columna, cuando lo que necesito es que se vea en 3 y no hay caso de que me resulte. ¿Qué estoy haciendo mal en ese código?

Les agradeceré mucho si me ayudan con este asunto.

Gracias!

Bye
  #2 (permalink)  
Antiguo 15/05/2009, 06:35
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 5 meses
Puntos: 4
Respuesta: Mostrar registros (fotos) en 2 columnas

Prueba así a ver que tal:
Código PHP:
<?php 
$link 
mysql_connect("localhost""root""password");
mysql_select_db("base_de_datos"$link);
 
$query="SELECT Nombre, Cargo, Foto FROM directores ";
$rst=mysql_query($query) or die(mysql_error());
$Maximo=3;
$Contador 1;
while (
$row=mysql_fetch_assoc($rst)) {
    if (
$Contador == 1) {
        echo 
"<tr><table border='1' cellpadding='0' cellspacing='0' width='507' align='center'>";
    }
    echo 
"<td  colspan='2' width='10%'><img src='../uploads/directores/th$row[Foto]' /><br>$row[Nombre]<br>$row[Cargo]</td>";
    if (
$Contador == $Maximo) {
        echo 
"</tr></table>";
        echo 
"<table border='1' cellpadding='0' cellspacing='0' width='507' align='center'>";
        
$Contador 0;
    }
    
$Contador++;
}
?>

Última edición por DarkKing; 15/05/2009 a las 06:47 Razón: corrección
  #3 (permalink)  
Antiguo 15/05/2009, 06:40
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 1 mes
Puntos: 14
Respuesta: Mostrar registros (fotos) en 2 columnas

Nop, tampoco Me sigue mostrado todo en una sola columna.

¿Cómo rayos se hace para que aparezcan las fotos con los nombres y cargo de las personas en las 3 columnas?

Gracias por tu interés en ayudarme!
  #4 (permalink)  
Antiguo 15/05/2009, 06:45
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 5 meses
Puntos: 4
Respuesta: Mostrar registros (fotos) en 2 columnas

Prueba otra vez con el código que te he puesto arriba, que lo he cambiado.
  #5 (permalink)  
Antiguo 15/05/2009, 06:50
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Mostrar registros (fotos) en 2 columnas

Pues está muy facil.... con el ejemplo d ela pagina de tu amigo puedes hacer asi:

Primero diseña esa tablita que contiene 1 foto y abajo el nombre... correcto? de ahi tu les llenas los campos con la BD... ese es otro tema.

Bien ahora usa este codigo para distribuirlo en 3 columnas

Código PHP:
<?php
<table border="0" cellspacing="0" cellpadding="0">
    <
tr><td colspan="3" height="1"></td></tr>                                
<?
php
for ($i=1$row mysql_fetch_row ($rs); $i++) {
$resto = ($i 3); 
    if (
$resto == 1) {
        echo 
"<tr>";
    } 
    echo 
'<td width="xxx">tu tablita</td>'
    if (
$resto == 0) {
        echo 
"</tr>";
    } 
}
if (
$resto <> 0) {
$ajust $resto;
    for (
$j 0$j $ajust$j++) {
        echo 
"<td>&nbsp;</td>";
    }
echo 
"</tr>";
}
?>
</table>
?>
La logica es sencilla, divide los registros entre 3 y abre un tr y td, luego cierra el td y pregunta si ya los 3 registros estan y pasa a cerrar el tr y abre otro hasta que se completa los registros, suerte
__________________
Quitenme la vida pero no la bebida.
  #6 (permalink)  
Antiguo 15/05/2009, 06:51
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 1 mes
Puntos: 14
Ok, ya hice la prueba y nada ...

De seguro algo mal debe andar con el código, porque no hay caso. Me sigue mostrando todo en una sola columna

Tampoco, ya he probado con ambas soluciones y nada.

Cesarpunk: tampoco: esta vez con tu solución, ni siquiera me muestra las data contenida en la BdD. Agradezco tu interés, en todo caso, amigo.

Vamos que se puede, estoy seguro que la solución o está dentro de mi código o, definitivamente, hay que cambiarlo por completo.

Última edición por GatorV; 16/05/2009 a las 19:55
  #7 (permalink)  
Antiguo 15/05/2009, 08:44
Avatar de cesarpunk  
Fecha de Ingreso: enero-2008
Ubicación: Lima
Mensajes: 943
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Mostrar registros (fotos) en 2 columnas

Te lo voy a poner mas directo..... si tu query esta bien... seguido va esto:

Código PHP:
<table border="0" cellpadding="0" cellspacing="0">
<?php
$columnas 
3;
?>
    <tr><td colspan="<?php echo $columnas?>" height="1"></td></tr>
<?php
if (mysql_num_rows($rst)==0){echo "<tr><td colspan=$columnas>No hay resultados en la BD.</td></tr> ";}
for (
$i=1$row mysql_fetch_row ($rst); $i++) {
$resto = ($i &#37; $columnas);
    
if ($resto == 1) {
        echo 
"<tr>";
    } <
tr>
    echo 
'<td>'.$row[0].'</td>'
    if (
$resto == 0) {
        echo 
"</tr>";
    } </
tr>
}
if (
$resto <> 0) { 
$ajust $columnas $resto
    for (
$j 0$j $ajust$j++) {
        echo 
"<td>&nbsp;</td>";
    }
    echo 
"</tr>"
}
?>
</table>
<?php
}
?>
obviamente en $row[0] va el dato que desees, ya tu lo acomodas para que vaya de acuerdo a tu diseño con mas datos ($row[0],$row[1]... etc)

edito: creo donde dice $resto = ($i #37; $columnas); es: $resto = ($i % $columnas);

nose porque no sale lo que escribo =P
__________________
Quitenme la vida pero no la bebida.

Última edición por cesarpunk; 15/05/2009 a las 08:52
  #8 (permalink)  
Antiguo 15/05/2009, 11:28
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 1 mes
Puntos: 14
Respuesta: Mostrar registros (fotos) en 2 columnas

Mi query está OK, pero algo pasó que me arrojó ene cantidad de problemas tu nuevo código.

En fin, parece que me voy a tener que resignar a que quede así tal como está

Gracias por vuestra ayuda, en todo caso.
  #9 (permalink)  
Antiguo 15/05/2009, 11:40
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: Mostrar registros (fotos) en 2 columnas

am poruqe no primero haces las consultas de las imagenes y registros los guardas en una varibbles
y haces tu tabla mir algo asi
Cita:
<tr>
<td width="206" height="280" valign="top">
<p align="center"><br />
<span class="style5"><a href="PDFs/NotiCyA 1.pdf">Febrero 2007<br />
</a></span><span class="style5"><br />
</span><a href="PDFs/NotiCyA 1.pdf"><img src="portadas noticya/CyA01.jpg" width="185" height="248" /></a></p></td>
<td width="226" valign="top">
<p align="center"><br />
<a href="PDFs/NotiCyA 2.pdf" class="style5">Junio 2007</a><br />
<br />
<a href="PDFs/NotiCyA 2.pdf"><img src="portadas noticya/CyA02.jpg" width="185" height="248" /></a></p></td>
</tr>
solo q los nombres del archivo serian las varibles

saludos no te rindas!!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #10 (permalink)  
Antiguo 15/05/2009, 13:51
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 1 mes
Puntos: 14
Respuesta: Mostrar registros (fotos) en 2 columnas

Sigo intentado, pero sin resultado alguno

No me voy a dar por rendido, pero asumo que ya estoy cabreado .. en fin ...
  #11 (permalink)  
Antiguo 15/05/2009, 14:20
Avatar de ana_gloria  
Fecha de Ingreso: febrero-2008
Mensajes: 65
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Mostrar registros (fotos) en 2 columnas

prueba a hacer lo siguiente:
$desplegar.='<table>
<tr>
<td>nombre></td>
<td>cargo></td>
<td>foto</td></tr>';
while($fila=mysql_fetch_array($rs))
{
$desplegar.='<tr>
<td>'.$fila["nombre"].'</td>
<td>'.$fila["cargo"].'</td>
<td>'.$fila["numero de foto"].'</td>
</tr>';
}
$desplegar.='</table>';
  #12 (permalink)  
Antiguo 15/05/2009, 15:10
Avatar de Dragon_Mandarin  
Fecha de Ingreso: marzo-2005
Ubicación: Santiago de Chile
Mensajes: 231
Antigüedad: 19 años, 1 mes
Puntos: 14
De acuerdo Respuesta: Mostrar registros (fotos) en 2 columnas

Hola, Ana Gloria!

Gracias por tu interés en ayudarme.

Pues bien, encontré la solución; investigando y recorriendo la seca, la meca y la tortoleca, encontré lo que necesitaba; hice las modificaciones del caso y, ¡voila!, resultó! Por fin!

Bien, por si a alguien más le sirve, dejo acá el código:

Código PHP:
<?php
//Establezco el numero de columnas
$columns 2;
mysql_connect("localhost","root","password");
@
mysql_select_db("nombre_base_de_datos") or die( "Imposible seleccionar base de datos");
//Hago el correspondiente Select
$query="SELECT Nombre, Cargo, Foto FROM directores";
$result mysql_query($query);
$num_rows mysql_num_rows($result);
echo 
"<table border=\"0\">\n";
for(
$i 0$i $num_rows$i++) {
      
$row mysql_fetch_array($result);
      if(
$i $columns == 0) {
            
//SI NO HAY RESTO SIGNIFICA QUE INICIAMOS UNA NUEVA FILA
            
echo "<tr>\n";
}
 echo 
"<td><br><img src='../uploads/directores/th$row[Foto]' /><br><span class='Nombre'>$row[Nombre]</span><br><span class='Cargo'>$row[Cargo]</span><br></td>\n";
     
// echo "<TD>" . $row['Foto'] . "</TD>\n";
      
if(($i $columns) == ($columns 1) || ($i 1) == $num_rows) {
            
//SI EL RESTO ES UNO
            //O SI NO HAY NADA MAS A LA IZQUIERDA
            //ES EL FINAL DE LA TABLA
            
echo "</TR>\n";
  }
}
echo 
"</table>\n";
?>
Ah, por cierto, la tabla de la base de datos:

Código PHP:
-- 
-- 
Estructura de tabla para la tabla `directores`
-- 
CREATE TABLE `directores` (
  `
idint(21unsigned NOT NULL auto_increment,
  `
Nombretext NOT NULL,
  `
Cargotext NOT NULL,
  `
Fotovarchar(255NOT NULL,
  
PRIMARY KEY  (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=cp1250 AUTO_INCREMENT=

Última edición por Dragon_Mandarin; 26/10/2014 a las 18:06
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 13:52.