Foros del Web » Programando para Internet » PHP »

Error SQL, no lo entiendo

Estas en el tema de Error SQL, no lo entiendo en el foro de PHP en Foros del Web. Hola amigos, estoy intentando hacer una consulta pero me da error: llevo dandole vueltas desde ayer pero no veo el problema. aqui les dejo el ...
  #1 (permalink)  
Antiguo 15/05/2009, 03:10
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Error SQL, no lo entiendo

Hola amigos, estoy intentando hacer una consulta pero me da error:

llevo dandole vueltas desde ayer pero no veo el problema.

aqui les dejo el codigo haber si alguien me puede ayudar
Código PHP:
$sql="SELECT * FROM messages WHERE nTypeid=".$Nid_typeMessage." AND (nDestinataireid=".$_SESSION['nid']." OR nDestinataire2id=".$_SESSION['nid']." OR nDestinataire3id=".$_SESSION['nid']." OR nDestinataire4id=".$_SESSION['nid'].")";
$respuesta=mysql_query($sql) or die(mysql_error());
while(
$donnees=mysql_fetch_array($respuesta))
{
    echo 
"<p id='messages'>Test</p>";

el error que me da es un tanto raro

Código:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND (nDestinataireid=20 OR nDestinataire2id=20 OR nDestinataire3id=20 OR nDestin' at line 1
gracias por vuestra ayuda
  #2 (permalink)  
Antiguo 15/05/2009, 03:23
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Error SQL, no lo entiendo

WHERE nTypeid=".$Nid_typeMessage." AND

prueba encerrando el valor de nTypeid entre comillas simples

Para la realización de las querys utiliza phpmyadmin
  #3 (permalink)  
Antiguo 15/05/2009, 03:27
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Error SQL, no lo entiendo

en phpmyadmin me ejecuta bien la query
pero con php no
porfavor ayudarme
  #4 (permalink)  
Antiguo 15/05/2009, 03:31
 
Fecha de Ingreso: noviembre-2006
Mensajes: 166
Antigüedad: 17 años, 5 meses
Puntos: 4
Respuesta: Error SQL, no lo entiendo

¿Haces un echo de $sql, lo que te muestra lo pones en el phpmyadmin y te hace bien la consulta?
  #5 (permalink)  
Antiguo 15/05/2009, 03:41
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Error SQL, no lo entiendo

La verdad que no lo entiendo.
he cambiado esto:
Código PHP:
$sql="SELECT * FROM messages WHERE nTypeid=".$Nid_typeMessage." AND (nDestinataireid=".$_SESSION['nid']." OR nDestinataire2id=".$_SESSION['nid']." OR nDestinataire3id=".$_SESSION['nid']." OR nDestinataire4id=".$_SESSION['nid'].")"
por esto:

Código PHP:
$sql='SELECT * FROM messages WHERE nTypeid='.$Nid_typeMessage.' AND (nDestinataireid='.$_SESSION['nid'].' OR nDestinataire2id='.$_SESSION['nid'].' OR nDestinataire3id='.$_SESSION['nid'].' OR nDestinataire4id='.$_SESSION['nid'].')'
y ahora me funciona

gracias por vuestras respuestas.
  #6 (permalink)  
Antiguo 15/05/2009, 03:43
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Error SQL, no lo entiendo

cuando realices consultas es recomendable que encierres los valores entre comillas simples

Además en phpmyadmin hay una opcion que te traduce el código sql a php, úsalo.
  #7 (permalink)  
Antiguo 15/05/2009, 03:44
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Error SQL, no lo entiendo

¿qué formato tienen los campos utilizados en la query?
  #8 (permalink)  
Antiguo 15/05/2009, 03:55
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Error SQL, no lo entiendo

todos son numericos (int)
  #9 (permalink)  
Antiguo 15/05/2009, 04:07
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Error SQL, no lo entiendo

Como norma general los valores de comparación en una query deben ir entre comillas simples. Los números se utilizan para operaciones aritméticas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:58.