Código PHP:
<?php
mysql_select_db($database_ies, $ies);
$query_listados = "
(
SELECT camp_secretaria_referencia as referencia, camp_secretaria_data as data, camp_secretaria_foto as foto,
camp_secretaria_titol as titol, camp_secretaria_text as text, camp_secretaria_paginici as paginici,
camp_secretaria_seccio as seccio
FROM taula_secretaria
WHERE camp_secretaria_paginici ='si'
)
UNION
(
SELECT camp_centre_referencia, camp_centre_data, camp_centre_foto, camp_centre_titol,
camp_centre_text, camp_centre_paginici, camp_centre_seccio
FROM taula_centre
WHERE camp_centre_paginici ='si'
)
UNION
.
.
etc hasta 25 tablas en total (consulta probada en MySQL y funciona).
Devuelve los registros de todas las tablas que cumplen una condición
y las ordena por fecha descendiente. Asigna alias a los campos.
.
.
ORDER BY data DESC
LIMIT 0 , 25
";
$listados = mysql_query($query_listados, $ies) or die(mysql_error());
$row_listados = mysql_fetch_assoc($listados);
$totalRows_listados = mysql_num_rows($listados);
$llamada = "
SELECT (
(SELECT COUNT(*) FROM taula_secretaria WHERE camp_secretaria_paginici ='si')
+
(SELECT COUNT(*) FROM taula_centre WHERE camp_centre_paginici ='si')
+
.
.
etc hasta 25 tablas en total. Consulta probada y funciona. Obtiene el número total de
registros que hay en la consulta anterior, es decir, la almacenada en $query_listados
.
.
)
AS total
";
$result = mysql_query($llamada, $ies);
$total_anuncis = mysql_result($result,0);
?>
<?php
if ($total_anuncis > 0) { ?>
<?php do { ?>
<?php
$data = $row_listados['data'];
setlocale(LC_TIME, 'ca_ES');
echo $fecha=strftime('%d %B %Y',strtotime($data));
?>
<?php echo $row_listados[$data]; ?>
<?php
$seccio = $row_listados['seccio']
switch ($seccio) {
case 'Secretaria':
$ruta_fitxa = '03_secretaria/secretaria_fitxa.php?camp_secretaria_referencia=';
$ruta_foto = '03_secretaria/carpeta_arxius/';
break;
case 'Centre':
$ruta_fitxa = '02_centre/centre_fitxa.php?camp_centre_referencia=';
$ruta_foto = '02_centre/carpeta_arxius/';
break;
case 'Biblioteca':
.
.
Etc para asignar rutas en función del departamento de que se trate
.
.
}
echo '<a href="'. $ruta_fitxa . $row_listados['referencia'] . '"><img src="' . $ruta_foto . $row_listados['foto'] . '"/></a>'; ?>
<p>
<a href="<?php echo $ruta_fitxa . $row_listados['referencia']; ?><?php echo $row_listados['titol']; ?>
<?php
$textonoti = nl2br($row_listados['text']);
$textonoti = str_replace("][",'" target="_blank">',$textonoti);
$textonoti = str_replace("[",'<a href="',$textonoti);
$textonoti = str_replace("]","</a>",$textonoti);
?>
<?php echo substr($textonoti,1,300); ?>
<a href="<?php echo $ruta_fitxa . $row_listados['referencia']; ?><img src="0_comuns/llegir_mes_a.jpg" /a><a href="<?php echo $ruta_fitxa . $row_listados['referencia[']; ?>
<a href="<?php echo $ruta_fitxa . $row_listados['referencia']; ?>Llegir /a>
<?php } while ($row_listados = mysql_fetch_assoc($listados)); ?>
Por tanto, yo he modificado las consultas (y funcionan) y he cambiado los nombres de los campos antiguos por los alias y también he insertado un switch porque según la sección de cada registro, se tiene que ir a buscar dos rutas: una para ir a otra página php y otra para encontrar una foto.
Al hacer estas modificaciones es cuando ha dejado de funcionar. He eliminado todo el formato HTML que había para centrarnos únicamente en lo que he modificado. Por eso puede que haya errores de código HTML, pero en el original está bien.
Os agradecería que echarais un vistazo. Gracias de antemano.