Ver Mensaje Individual
  #6 (permalink)  
Antiguo 08/03/2011, 11:50
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: 16 años, 5 meses
Puntos: 2658
Respuesta: Delete sin select

No existe algo llamado "error en construcción de consulta". Lo que puede existir es un error de sintaxis en una consulta, que no es exactamente lo mismo.
Por otro lado, no queda suficientemente claro si esos dos campos mencionados son FK de otra tabla o so claves propias. Cuando describas una relación de tablas es mejor que seas más detallado, porque esa información ayuda mucho a entender lo que se está tratando de lograr.
En tu caso, parece haber relaciones entre tablas que pueden tener impacto en la lógica de la consulta.

Tu consulta:
Código MySQL:
Ver original
  1. DELETE FROM denuncias d
  2.     d.ID_SECCION = 9
  3.     AND
  4.     d.ID_ELEMENTO IN
  5.                            (SELECT c.ID
  6.                            FROM comentarios c
  7.                            WHERE
  8.                                ID_ELEMENTO = $idFoto
  9.                                AND
  10.                                ID_SECCION = 8)
está sintácticamente bien escrita, pero depende de si la variable $idFoto está llegando o no llena. Si por alguna razón el valor de la variable no existe, la sentencia finalmente quedaría así al ejecutarse:
Código MySQL:
Ver original
  1. DELETE FROM denuncias d
  2.     d.ID_SECCION = 9
  3.     AND
  4.     d.ID_ELEMENTO IN
  5.                            (SELECT c.ID
  6.                            FROM comentarios c
  7.                            WHERE
  8.                                ID_ELEMENTO =
  9.                                AND
  10.                                ID_SECCION = 8)
lo que daría lugar a un error de sintaxis producto del PHP mal debuggeado.
Fuera de eso, no hay problemas visibles.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)