Ver Mensaje Individual
  #6 (permalink)  
Antiguo 25/09/2012, 19:36
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: no me guarda la consulta

Primero: Por favor, haznos la gentileza de borrar toda ese código PHP, que es off-topic, no nos aporta nada y sólo está escondiendo los problemas. Acuérdate de que este foro no se permite códigos de programación. Sólo SQL.
Segundo: Ten muy en cuenta que el SQL es un lenguaje independiente de PHP, y tiene su propia sintaxis. Cuando embebes el SQL dentro de otro lenguaje debes respetar las reglas sintácticas del SQL en su contexto.
Uno de los problemas es que en MySQL el uso de comillas (") y apóstrofos (') no es arbitrario ni flexible. Las comillas encierran nombres de columna, por ejemplo, y los apóstrofos se usan para cadenas.
Aprovechando el BBCode, te mostraré cómo queda lo que tu pones, si sólo pongo el SQL:
Código MySQL:
Ver original
  1. insert into ventas(
  2.     N_PEDIDO,
  3.     COD_CLI,
  4.     COD_EMP,
  5.     COD_PROD,
  6.     FECHA_PEDIDO,
  7.     CANTIDAD,
  8.     PRECIO,
  9.     SUBTOTAL)
  10.     "'.$n_ped.'",
  11.     "'.$_POST['COD_CLI'].'",
  12.     "'.$_SESSION["clave"].'",
  13.     "'.$_POST['ID_PROD'].'",
  14.     "'.$fecha.'",
  15.     "'.$_POST['CANTIDAD'].'",
  16.     "'.$_POST['PRECIO'].'",
  17.     "'.$_POST['SUBTOTAL'].'")
y lo que debería verse es:
Código MYSQL:
Ver original
  1. insert into ventas(
  2.     N_PEDIDO,
  3.     COD_CLI,
  4.     COD_EMP,
  5.     COD_PROD,
  6.     FECHA_PEDIDO,
  7.     CANTIDAD,
  8.     PRECIO,
  9.     SUBTOTAL)
  10.     '".$n_ped."',
  11.     '".$_POST['COD_CLI']."',
  12.     '".$_SESSION['clave']."',
  13.     '".$_POST['ID_PROD']."',
  14.     '".$fecha."',
  15.     '".$_POST['CANTIDAD']."',
  16.     '".$_POST['PRECIO']."',
  17.     '".$_POST['SUBTOTAL']."')
Eso es porque en lugar de crear la cadena en PHP con las comillas, estás usando apóstrofos, lo que en PHP da buen resultado, pero genera un gravísimo error en el SQL, porque confunde el contenido de las variables con nombres de campos.

Tercero: Nunca, jamás, llames a una sentencia de SQL sin capturar el error que la base de datos devuelve. Recuperar ese mensaje y número de error es crítico para saber cuál es el problema, y poder encarar la solución.

Finalmente, recuerda siempre que el hecho de que las variables tengan datos no implica que las estés usando bien. Si quieres saber si una consulta está correctamente escrita, no la ejecutes directamente al crearla, sino carga una variable string con la consulta, captura su contenido y pruébalo en el PhpMyadmin o lo que sea que uses.
Es una malísima práctica usar consultas directamente sin probar su sintaxis primero en un fornt-end. 9 de cada 10 veces contendrán errores que no puedes ver porque quedan escondidos en el código PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)