Cita:
Iniciado por architelos
El programa funciona a la perfección, pero hay un problema: necesito hacer que no me muestre registros con el mismo "tituloc" y "enlacec", es decir, que al volcar todo el contenido, omita las entradas con un "tituloc" o "enlacec" ya volcado. He intentando mil y una cosas pero no consigo hacer nada. Mi idea es: ¿cómo hacer una consulta para omitir tituloc o enlacec repetidos, dentro de la consulta general?
Mira, desde el punto de vista de BBDD y SQL, se consideran "iguales" aquellos registros donde
todas y cada una de las columnas tienen exactamente el mismo contenido. Si al menos hay UNA que se diferencie, aunque sea en un sólo caracter, para la base de datos se trataría de registros
diferentes.
Esto implica que no existe forma de que la base no te devuelva datos repetidos en las columnas que mencionas, si hay diferencia en cualquiera de las otras. Sólo te queda ir verificando cada registro una vez recuperado, para omitir mostrar aquellos que se repiten (hace un tiempo postee en PHP un ejemplo de lo que digo).
La otra opción, si desde SQL, es hacer dos consultas: una que devuelva sólo esas columnas, usando un DISTINCT, y otra que devuelva todo el resultado, de acuerdo a lo que se necesite.
Código SQL:
Ver originalSELECT DISTINCT tituloa, enlacea
FROM contenidos
WHERE fecha LIKE '%$fecha%'".$h." ".$g." ".$j."
ORDER BY id
LIMIT 500
Nota: Una fecha es a magnitud, un valor escalar, es decir que una fecha puede ser igual, mayor, menor o estar en un rango pero NO ES "parecida a ". Usar LIKE con fechas está
MAL. se generan datos erróneos en las consultas.
Procura evitar el uso de LIKE, que está definido para
cadenas de texto y no valores escalares.
Evitarás problemas de performance y errores de datos.