Código SQL:
Ver originalSELECT
noticias.idNoticia,
noticias.titulo,
noticias.copete,
noticias.cuerpo,
noticias.fCreacion,
noticias.fModificacion,
categorias.valor AS categoria,
usuarios.usuario
FROM `noticias`
INNER JOIN `categorias` ON categorias.idCategoria = noticias.idCategoria
INNER JOIN `usuarios` ON usuarios.idUsuario = noticias.idUsuario
WHERE idNoticia = '" . $_GET['idNoticia'] . "' AND titulo = '" . $_GET['titulo'] . "'
Mira, si ya tienes el ID de noticia, se supone que el título es irrelevante. Y si tienes el título correctamente, el idNoticia no es necesario.
Pero si uno de los dos valores no llega o no coninciden al mismo tiempo con la oticia, esa consulta no devovlerá datos.
¿Tienes claro eso?
Si lo que quieres es que te evalúe uno u otro, pero al menos
uno de ambos, entonces la sintaxis es otra:
Código SQL:
Ver originalSELECT
noticias.idNoticia,
noticias.titulo,
noticias.copete,
noticias.cuerpo,
noticias.fCreacion,
noticias.fModificacion,
categorias.valor AS categoria,
usuarios.usuario
FROM `noticias`
INNER JOIN `categorias` ON categorias.idCategoria = noticias.idCategoria
INNER JOIN `usuarios` ON usuarios.idUsuario = noticias.idUsuario
WHERE idNoticia = " . $_GET['idNoticia'] . " OR titulo = '" . $_GET['titulo'] . "'
Por otro lado, usar el título como parte de la búsqueda puede ser un poco inseguro, si el valor ingresado en formulario no es
exactamente el mismo. Con una sola letra de diferencia, y ese registro no lo encontrarás.
Además, no veo que estés validando en su script PHP que las consultas realmente estén devolviendo datos. Cometes el clásico error de
asumir que la consulta funciona y devuelve datos, no lo que no es necesariamente cierto. Nunca.
Valida la respuesta (el result), antes de intentar hacer un fetch.