Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Organización de datos

Estas en el tema de Organización de datos en el foro de Bases de Datos General en Foros del Web. Hola! Estoy intentando, casi tirándome de los pelos conseguir lo siguiente, espero que me puedan ayudar: Tengo en una DB llamada "ejemplo" 2 tablas Albums ...
  #1 (permalink)  
Antiguo 15/12/2010, 16:09
Avatar de Shaito  
Fecha de Ingreso: agosto-2010
Mensajes: 383
Antigüedad: 13 años, 8 meses
Puntos: 37
Organización de datos

Hola!

Estoy intentando, casi tirándome de los pelos conseguir lo siguiente, espero que me puedan ayudar:

Tengo en una DB llamada "ejemplo" 2 tablas Albums y Portfolio.
Dentro de albums dos campos, id y album (nombra todos los albums)
Dentro de Portfolio 8 nombre,descripcion,album,categoria,categoria2,cate goria3,carpeta e id.

Ahí se guardan las imágenes con un par de datos más entre ellos el nombre del album al que pertenecen.

Lo que intento es que al generar, se ordene por albums, pero no By album, ya que lo generado es esto:

Cita:
<li data-id="album1" class="Animals,Artistic,">
<span class="boxgrid caption">
<a href="galeria/caballo/Caballi.jpg" class="fancybox" rel="album1">
<img src="galeria/caballo/Caballi.jpg"/>
</a>
<a href="galeria/caballo/Caballi.jpg" class="fancybox" rel="album1"></a>
<span class="cover boxcaption">
<strong>album1</strong>
</span>
</span>
</li>

<li data-id="album1" class="Animals,,">
<span class="boxgrid caption">
<a href="galeria/animals/Gato" class="fancybox" rel="album1">
<img src="galeria/animals/Gato"/>
</a>
<a href="galeria/animals/Gato" class="fancybox" rel="album1"></a>
<span class="cover boxcaption">
<strong>album1</strong>
</span>
</span>
</li>

<li data-id="album1" class="Artistic,Portraits,">
<span class="boxgrid caption">
<a href="galeria/artistic/Abtract" class="fancybox" rel="album1">
<img src="galeria/artistic/Abtract"/>
</a>
<a href="galeria/artistic/Abtract" class="fancybox" rel="album1"></a>
<span class="cover boxcaption">
<strong>album1</strong>
</span>
</span>
</li>

<li data-id="album2" class="Animals,Nature,">
<span class="boxgrid caption">
<a href="galeria/animals/Aguila" class="fancybox" rel="album2">
<img src="galeria/animals/Aguila"/>
</a>
<a href="galeria/animals/Aguila" class="fancybox" rel="album2"></a>
<span class="cover boxcaption">
<strong>album2</strong>
</span>
</span>
</li>
Si os fijáis en rel, contiene los albums pero no los agrupa.

Lo que yo pretendo es lo siguiente:
Cita:
<li data-id="album1" class="Animals,Artistic,">
<span class="boxgrid caption">
<a href="galeria/caballo/Caballi.jpg" class="fancybox" rel="album1">
<img src="galeria/caballo/Caballi.jpg"/>
</a>
<a href="galeria/caballo/Caballi.jpg" class="fancybox" rel="album1"></a>
<a href="galeria/animals/Gato" class="fancybox" rel="album1"></a>
<a href="galeria/artistic/Abtract" class="fancybox" rel="album1"></a>
<span class="cover boxcaption">
<strong>album1</strong>
</span>
</span>
</li>

<li data-id="album2" class="Animals,Nature,">
<span class="boxgrid caption">
<a href="galeria/animals/Aguila" class="fancybox" rel="album2">
<img src="galeria/animals/Aguila"/>
</a>
<a href="galeria/animals/Aguila" class="fancybox" rel="album2"></a>
<span class="cover boxcaption">
<strong>album2</strong>
</span>
</span>
</li>

Este es mi code:
Cita:
<?
//Conexion con la base
include('config');

//Ejecutamos la sentencia SQL
$result=mysql_db_query("ejemplo","select * from portfolio");
?>

<textarea style="width:100%; height:100%">

<?php

while ($row=mysql_fetch_array($result))
{
echo '<li data-id="'.$row["album"].'" class="'.$row["categoria"].','.$row["categoria2"].','.$row["categoria3"].'">
<span class="boxgrid caption">';
echo '
<a href="galeria/'.$row["carpeta"].'/'.$row["nombre"].'" class="fancybox" rel="'.$row["album"].'">
<img src="galeria/'.$row["carpeta"].'/'.$row["nombre"].'"/>
</a>';

echo '
<a href="galeria/'.$row["carpeta"].'/'.$row["nombre"].'" class="fancybox" rel="'.$row["album"].'"></a>';

echo '
<span class="cover boxcaption">
<strong>'.$row["album"].'</strong>
</span>
</span>
</li>

';

}
mysql_free_result($result2)
?>

////////////
Espero que me puedan ayudar


Cualquier pregunta déjenla como comentario y las responderé



Un saludo! Y gracias de antemano
__________________
Shaito Hiraga - Diseñador CSS

Última edición por Shaito; 15/12/2010 a las 16:16
  #2 (permalink)  
Antiguo 17/12/2010, 10:29
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: Organización de datos

Hola Shaito

Creo que la solución al problema va más de la mano de la programación de la página que de la consulta (aunque igual debieras agregarle un ORDER BY album).

Para que todas las imágenes te queden dentro un mismo álbum, debieras hacer un IF dentro del WHILE, que pregunte si el álbum actual es distinto al anterior, y sólo ahí imprimir las tags que forman el nuevo álbum (tanto el inicio como el cierre), mientras que las tags de las imágenes siempre debieran imprimirse.

Algo como esto:

Código PHP:
$ultimoAlbum "";
$contador 0;

while (
$row=mysql_fetch_array($result))
{
  if (
$ultimoAlbum != $row["album"])
 { 
   if (
$contador 0)
  { 
     echo 
'
<span class="cover boxcaption">
<strong>'
.$ultimoAlbum.'</strong>
</span>
</span>
</li>
     '
;
  }
   echo 
'<li data-id="'.$row["album"].'" class="'.$row["categoria"].','.$row["categoria2"].','.$row["categoria3"].'">
<span class="boxgrid caption">'
;
   echo 
'
<a href="galeria/'
.$row["carpeta"].'/'.$row["nombre"].'" class="fancybox" rel="'.$row["album"].'">
<img src="galeria/'
.$row["carpeta"].'/'.$row["nombre"].'"/>
</a>'
;
 }

 echo 
'
<a href="galeria/'
.$row["carpeta"].'/'.$row["nombre"].'" class="fancybox" rel="'.$row["album"].'"></a>';

 
$contador++;


__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
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 01:38.