Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/08/2015, 07:22
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses
Puntos: 2658
Respuesta: Consulta dentro de consulta en PHP (y mySQL)

Cita:
Iniciado por architelos Ver Mensaje
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 original
  1. SELECT DISTINCT tituloa, enlacea
  2. FROM contenidos
  3. WHERE fecha LIKE '%$fecha%'".$h." ".$g." ".$j."
  4. ORDER BY id
  5. 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.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)