primero estas utilizando una libreria depreciada y te va a traer problemas en un futuro MUY corto, por otro lado no se como tienes estructurada tu base de datos, pero intenta asi:
Código PHP:
Ver originalfunction buscar($X){
$q = $this->db->query("SELECT * FROM tabla WHERE anio = $X ORDER BY id ASC");
$da = $q->fetch_array();
return ($ca>=1) ? $da : false;
}
//Ejecuto la busqueda de los años en mi base de datos
$q = $this->db->query("SELECT anio FROM tabla GROUP BY anio ORDER BY anio ASC");
//Verifico si hay resultados
//Recorro los resultados
while($row = $q->fetch_array()){
//Muestro el titulo
echo "<h4>Exposiciones año ".$row['anio']."</h4>";
//Envia a la funcion el año para que em regrese los resultados
$data = buscar($row['anio']);
//Si hay resultados
if($data){
//los recorro
foreach($data as $key => $value){
//Aqui oprganizas los elementos de la respuesta
echo '<a href="#" class="pasadasmargen" data-toggle="collapse" data-target="#'.$value['categoria'].'"><span class="glyphicon glyphicon-plus-sign"></span>'.utf8_encode($value['titulo']).'</a><div id="'.$value['categoria'].'" class="collapse"><div class="col-sm-12 col-md-6 col-lg-6"><br><p>'.utf8_encode($value['contenido']).'</p></div><div class="col-sm-12 col-md-6 col-lg-6"><img class="img-responsive" src="'.$value['imagen'].'" width="50%"></div></div>'; }
}else{
//Si no hay resultados
echo "<p>Sin exposiciones para este año</p>";
}
}
}else{
echo "No se encontraron registros";
}
quiza haya una manera más simple, asi que prueba esta y ve que otros comentarios salen.
Recuerda utilizar mysqli para tus desarrollos