Foros del Web » Programando para Internet » PHP »

Cómo muestro un campo en un while ?

Estas en el tema de Cómo muestro un campo en un while ? en el foro de PHP en Foros del Web. Hola gente! Tengo una página que me genera una galería de fotos. Las mismas están en una tabla y los campos son: id, actividad, profesor, ...
  #1 (permalink)  
Antiguo 26/09/2005, 08:40
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 15 años, 6 meses
Puntos: 1
Cómo muestro un campo en un while ?

Hola gente! Tengo una página que me genera una galería de fotos. Las mismas están en una tabla y los campos son:
id, actividad, profesor, alumnas, foto.

La página que me genera la galería contiene esta estructura:

Código PHP:
$CantxCol = 4; //Cantidad de columnas
$Cant = 0; // Variable para ser usada como contador

$sql = "SELECT * FROM festival WHERE actividad = $actividad // me trae las fotos según la actividad
$consulta = mysql_query($sql, $conexion);

<table width="586" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <?
    
// Muestro los registros
    
if ($consulta)
    {
       while(
$row=mysql_fetch_array($consulta))       
        {
    
?>
    <td colspan="8" align="center">
      <table border="0" cellpadding="0" cellspacing="0" class="cuadro-contacto">
        <tr>
          <td><img src="resize.php?img=<?php echo $row['foto']; ?>" border="0"></a></td>
        </tr>
      </table>
           </td>
    <?php $Cant $Cant 1;
          if ((
$Cant $CantxCol) == 0)
            {
      
?>
              </tr>
              <tr>
    <?php             
                else              
                { 
            } 
        }
            
//libero el recordset
            
mysql_free_result($consulta);
    }
        
// Cierro la conexion
        
mysql_close($conexion); 
    
?>
  </tr>
</table>
Hasta acá me funciona fantástico. Ahora lo que estuve intentando es poner abajo de todo, la descripción de las fotos, según la actividad.
Para que me aparezcan las descripciones escribí
Código PHP:
echo 'PROFESOR: '.$row['profesor'];
echo 
'ALUMNAS: '.$row['alumnas']; 
... pero no logro que esto me aparezca abajo de todo, después que termina de aparecer la galería de fotos.
Por lo que veo, si lo pongo fuera del while no funciona, no hace nada.
A lo mejor pregunto una burrada, pero:

- ¿no hay forma de guardar por ejemplo la descripción del campo $row['alumnas']; en una variable para después usarla fuera del while?
- ¿en que parte de la tabla tendría que poner el echo 'ALUMNAS: '.$row['alumnas']; para que me aparezca la descripción?

Si me pueden dar una mano, se los voy a agradecer.

Atte. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #2 (permalink)  
Antiguo 26/09/2005, 09:13
Avatar de polaya  
Fecha de Ingreso: diciembre-2004
Ubicación: Chile
Mensajes: 191
Antigüedad: 13 años
Puntos: 0
Necesitas que los nombres del profesor y de las alunas aparezcan debajo de cada foto o al final de tooodas las fotos???.
En el primer caso basta con un <br>, debajodel nombre de la foto, en el segundo caso puedes trabajas con una variable a la que le sumas los nombres, como un array y despues la rescatas y despligas cada nombre con la funcion "foreach".
Ojala te sirva de algo
Chau
__________________
La vida da muchas vueltas...debe ser por eso que uno se marea.
  #3 (permalink)  
Antiguo 26/09/2005, 10:05
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 15 años, 6 meses
Puntos: 1
polaya: gracias por responder.
Necesito que los nombres del profesor y de las alumnas aparezcan al final de todo.
Cita:
Iniciado por polaya
...en el segundo caso puedes trabajas con una variable a la que le sumas los nombres, como un array y despues la rescatas y despligas cada nombre con la funcion "foreach".
El campo ALUMNAS ya tiene cargado todos los nombres. Lo que necesitaría saber es como se hace para que aparezca abajo de todo. Por lo que yo hice tiene que estar fuera de la tabla porque si lo pongo dentro me aparecen amontonados en una de las columnas y lo que necesito es que aparezcan a lo largo, como en un renglón aparte.
Por eso si se puede guardar en una variable creo que se podría manipular mejor la ubicación... pero... ¿como se hace?

Gracias otra vez.

Saludos. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #4 (permalink)  
Antiguo 27/09/2005, 11:56
Avatar de polaya  
Fecha de Ingreso: diciembre-2004
Ubicación: Chile
Mensajes: 191
Antigüedad: 13 años
Puntos: 0
A ver marx-pola, vamos por partes, si las imagenes las despliegas en el mismo orden que las guardaste en la base de datos, lo mismo puedes hacer con los demas datos:

1.- Foto1 2.- Foto2 3.- Foto3 4.- Foto4

1.- Texto1
2.- Texto2
3.- Texto3
4.- Texto4

¿esa es la idea?
Si es asi, basta con repetir el while con la misma sentencia y desplagar las nuevas variables...probaste asi?

me cuentas
__________________
La vida da muchas vueltas...debe ser por eso que uno se marea.
  #5 (permalink)  
Antiguo 28/09/2005, 17:38
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 15 años, 6 meses
Puntos: 1
La verdad, no sé como hacerlo.

El tema es así... tengo 10 fotos en la base de datos, FOTO1a y FOTO1b tienen el MISMO campo texto, o sea los mismos datos... por tal motivo cuando confeccioné la tabla, al campo ALUMNAS, PROFESOR, ACTIVIDAD, le puse que puede ser NULL, de esta forma al seleccionar ESE grupo, solo me va a aparecer 1 vez el campo que sea texto. Entonces quedaría así:
1.- Foto1a - campo ALUMNAS (todas las que aparecen en Foto1a y b)
2.- Foto1b
3.- Foto2a - campo ALUMNAS (todas las que aparecen en Foto2a y b)
4.- Foto2b
5.- Foto3a - campo ALUMNAS (todas las que aparecen en Foto3a y b)
6.- Foto3b

Si es como me dijiste que pruebe, la verdad no sé donde volver a poner el while.

¿Tienes o tienen alguna sugerencia?

La Galería ya está funcionando en Mi Galería de Fotos pero me gustaría que aparezcan los datos de cada grupo de fotos y estoy muy contento porque a pesar que me cuesta mucho entender tooooodos los procedimientos, me salió a puro pulmón y es por eso que cuando no puedo avanzar solicito una manito.
Lo único que pido es que si no se puede hacer, solo me lo digan.

Muchísimas gracias de antemano.

Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #6 (permalink)  
Antiguo 29/09/2005, 08:14
Avatar de polaya  
Fecha de Ingreso: diciembre-2004
Ubicación: Chile
Mensajes: 191
Antigüedad: 13 años
Puntos: 0
De acuerdo a lo que vi, puedes tener mas de una foto para cada grupo, lo que no me quedo claro es si en la misma tabla que guardas las fotos tambien guardas los nombres de las alumnas y los profesores????. Si es asi me parece que tu Base de datos tiene un problemilla de diseño. Cuando tienes una relacion 1 a muchos, no puedes guardar todos los datos en lamisma tabla ya que te genera espacios mal utilizados.
El tema es que en la misma tabla donde tienes la descripcion del grupo, deberias poner, ademas del nombre de este, el nombre de las alumnas y del profesor, porque me inmagino que es unico para cada grupo, ¿no?, y en una tabla a parte solo las imagenes.
Entonces asi, generas dos consultas en la pagina de las imagenes una a la tabla imagenes para desplegarlas en pantalla y otra en la tabla descripcion en la cual esta guardado UNA SOLA VEZ los datos que deben ir asoiciados a ese conjunto de fotos. Se entiende???
Obviamente todo lo rescatas con el mismo valor o con la variable "cod", que es la que estas enviando actualmente.
Bueno espero que esto solucione el tema, si no, publica el diseño de la BD, para entender mejor.
Saludos
__________________
La vida da muchas vueltas...debe ser por eso que uno se marea.
  #7 (permalink)  
Antiguo 29/09/2005, 22:44
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 15 años, 6 meses
Puntos: 1
Hola polaya: gracias por tu paciencia. Entendí lo que me comentaste y es posible que haya metido la pata al crear la tabla.
Este es el diseño de la tabla que creé...

CREATE TABLE `festival` (
`id` int(4) NOT NULL auto_increment,
`year` int(4) NOT NULL default '0',
`orden` int(2) NOT NULL default '0',
`foto` varchar(100) NOT NULL default '',
`actividad` varchar(30) default NULL,
`profesor` varchar(30) default NULL,
`alumnas` text,
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=150 ;

Las fotos aparecen en la galería según el ORDEN... lo llamo así por el orden en que aparecieron los grupos en el escenario.
Entonces, si selecciono el grupo de fotos ORDEN 1, me trae solo las fotos de esa coreografía (7 fotos), ORDEN 2, otras (4 fotos)... ORDEN 3, otras (5 fotos).
Después me dije, si le agrego un campo ACTIVIDAD, PROFESOR, ALUMNAS... y hago que me aparezcan esos datos correspondientes a cada ORDEN al final de todo, quedaría mucho más completo.
Pero pensé... si dentro de esta tabla FESTIVAL donde están las fotos, por cada grupo que selecciono según el ORDEN (X fotos por cada grupo), tengo que llenar todos los campos ACTIVIDAD, PROFESOR, ALUMNAS y repetirlo por ejemplo en el ORDEN 1 (7 fotos) en las 7 fotos, ORDEN 2 (4 fotos) en las 4 fotos, etc... para eso lo cargo solo en la primer foto que corresponda a cada grupo y listo.

¿Puede ser que este planteamiento esté mal? ¿no puedo llamar solo a la descripción de cada primer foto de cada grupo?

A lo mejor ahí está el pifie...

Muchísimas gracias por tu atención y espero no haber errado tanto.

Saludos... Atte. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
  #8 (permalink)  
Antiguo 30/09/2005, 15:31
Avatar de polaya  
Fecha de Ingreso: diciembre-2004
Ubicación: Chile
Mensajes: 191
Antigüedad: 13 años
Puntos: 0
Ahora me quedo mas claro el tema...efectivamente es un problema de diseño de base de datos y estas generando inconsistencia.
Mira, debes crear dos tablas de la siguiente manera:

festival
- idfestival
- actividad
- profesor
- alumnos
- year
- orden

fotos
-idfoto
- foto
- idfestival

Entonces con este diseño es muchisimo mas facil hacer lo que tu quieres y te evitas estar perdiendo espacio (lo que en una bd es fundamental).
Cada vez que guardes una actividad los datos "unicos" de esta quedaran guardados en la tabla "festival" la cual esta relacionada conla tabla "fotos" por su id. Ahi tienes una relacion "uno a muchos", es decir "un campo de la tabla festival puede estar asociado a varios campos de la tabla fotos"...se entiende hasta ahora???.
Asi, desde la pagina donde despliegas los nombres de las danzas y actividades, envias el campo "idactividad" para rescatar las fotos asociadas a esta...luego con el mismo campo, realizas la siguiente consulta a la tabla festival y asi podras desplegar al final de las fotos el nombre del profesor y las alumnas de "esa danza", que en la tabla actividad son unicos.
Ojala quede claro y te sirva de algo...cualquier cosa...para eso estamos
Saludos y me cuentas.
__________________
La vida da muchas vueltas...debe ser por eso que uno se marea.
  #9 (permalink)  
Antiguo 03/10/2005, 11:39
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 15 años, 6 meses
Puntos: 1
jajajajaja!!!!! Yo sabía que me estaba queriendo pasar de vivo, por eso no salía como pensaba.
Ya estoy modificando las tablas y empezaré esta semana a hacer pruebas. Luego te cuento como me fué.

Muchísimas gracias otra vez.

Saludos. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.
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 11:05.