Lo prometido es deuda, así que te dejo un ejemplo, pero, como usas BD... mejor olvidar los ifs y los switch para las categorías.
Es un ejemplo, evidentemente es mejorable.
Cambia lo que necesites y no dejes la conexión y las consultas tan cutres. Y por supuesto recuerda poner seguridad al recoger el parámetro con $_GET.
¿Qué hace el ejemplo?
Crea varios enlaces con las categorías que tienes en la tabla Categorías.
Al hacer clic en cada enlace verás sólo las fotos de los animales escogidos.
Dirás: pero es que yo lo quería para los usuarios...
Es el mismo planteamiento. Sólo adáptalo a tu página.
¿Por qué las categorías están en una tabla y no en una columna?
Normalización de tablas (aquí no entro, cada cual que empolle lo suyo)
¿Por qué hay una subconsulta?
Por que el valor que se pasa por parámetro es el nombre pero buscamos las categorías por id (número)
¿Y porque no usar el número de id?
URL amigables y mejor indexación de las webs (Aquí tampoco entro en detalle por el mismo motivo)
Tabla categorías:
Código MySQL:
Ver original--
-- Estructura de tabla para la tabla `categorias`
--
--
-- Volcado de datos para la tabla `categorias`
--
(1, 'perros'),
(2, 'largatos'),
(3, 'peces');
Tabla imágenes:
Código MySQL:
Ver original--
-- Estructura de tabla para la tabla `imagenes`
--
--
-- Volcado de datos para la tabla `imagenes`
--
(1, '54645645654', 'img/labrador.jpg', 1),
(2, 'rewrewrewrw', 'img/caniche_02.jpg', 1),
(3, 'iguana al sol', 'img/lagarto.png', 2),
(4, 'pez tropical', 'img/pez-león.gif', 3);
Página php: Código PHP:
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<?php
$conexion = mysql_connect("127.0.0.1","root","") or die ( "No se ha podido establecer la conexión con el servidor");
mysql_select_db("deprueba",$conexion);
//Función q cargara cada contenido dependiendo del parámentro por URL
function cargarImagenes($categoria='')
{
if( $con=mysql_query("SELECT titulo, ruta FROM imagenes WHERE categoria=
(SELECT id FROM categorias WHERE nombre LIKE '".$categoria."')") or die("Error en la consulta: ".mysql_error()) )
{
while($rs = mysql_fetch_assoc($con))
{
echo 'Titulo: '.$rs['titulo'].'<br />
<img src="'.$rs['ruta'].'" /><br /><br />';
}
}
}
//Unos enlaces de prueba mostrando todas las categorias que tienes en la BD
if( $con=mysql_query("SELECT nombre FROM categorias") or die("Error en la consulta: ".mysql_error()) )
{
while($rs = mysql_fetch_assoc($con))
{
$categorias[] = $rs['nombre'];
echo 'Enlace: <a href="'.$_SERVER['PHP_SELF'].'?categoria='.$rs['nombre'].'">'.$rs['nombre'].'</a><br />';
}
if(isset($_GET['categoria']) )
{
cargarImagenes($_GET['categoria']);
}
elseif(count($categorias) > 0)
{
cargarImagenes($categorias[0]);
}
}
else{
echo 'Ups no hay categorias en nuestra BD';
}
?>
</body>