Foros del Web » Programando para Internet » PHP »

Duda con la inserción de datos de mi formulario

Estas en el tema de Duda con la inserción de datos de mi formulario en el foro de PHP en Foros del Web. Hola. Tengo una duda y prefiero preguntar. Resulta que estoy insertando en mi bd en dos tablas de manera simultanea en tablas diferentes. Los datos ...
  #1 (permalink)  
Antiguo 30/11/2009, 14:17
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Duda con la inserción de datos de mi formulario

Hola.
Tengo una duda y prefiero preguntar. Resulta que estoy insertando en mi bd en dos tablas de manera simultanea en tablas diferentes. Los datos que quiero insertar los tomo de un formulario y los mando a procesar a un archivo php por metodo post. Hasta ahi todo bien.
Resulta que en el codigo PHP hago los dos insert de manera independiente, a cada una de las tablas, la duda que tengo no se si esta bien la sntaxis que estoy aplicando pues me arroja error de sintaxis sql, ¿sera que me falta alguna coma, cierre de llaves, etc? pues no visualizo nada de eso.

Aqui mi codigo



Código PHP:
....
....
//insert encabezado
$consulta'INSERT INTO encabezado_guia_servicio 
                    (numero_guia_servicio,fecha_guia,rut_cliente,guia_5081,id_contrato_cliente,id_relleno_sanitario,numero_ticket_relleno,id_estado_guia )
                     VALUES 
                     ( "'
.mysql_real_escape_string($_POST['txt_numero_guia_agregar']).'", "'.mysql_real_escape_string($_POST['txt_fecha_guia_agregar']).'", "'.substr($_POST['slt_rut_agregar'],0,-2).'","'.mysql_real_escape_string($_POST['txt_5081_guia_agregar']).'","'.$_POST['slt_contrato_agregar'].'",'.$id_relleno[0].',"'.mysql_real_escape_string($_POST['txt_ticket_guia_agregar']).'",'.$id_estado[0].' )';
        
//echo "$consulta";
        
mysql_query($consulta,$conexion) or die (' Error en la consulta SQL, el error es : '.mysql_error());
        
        
//insert cuerpo
        
$consulta'INSERT INTO cuerpo_guia_servicio (numero_guia_servicio,numero_linea, cantidad,volumen)
         VALUES ( "'
.mysql_real_escape_string($_POST['txt_numero_guia_agregar']).'", "'.mysql_real_escape_string($_POST['txt_linea1_guia_agregar']).'", "'.mysql_real_escape_string($_POST['txt_cantidad1_guia_agregar']).'","'.mysql_real_escape_string($_POST['txt_volumen1_guia_agregar']).'"';
        
//echo "$consulta";
        
mysql_query($consulta,$conexion) or die (' Error en la consulta SQL, el error es : '.mysql_error());
.... 
Cuando imprimo las variables $consulta para ver que manda me muestra lo siguiente:
INSERT INTO encabezado_guia_servicio VALUES ( "10", "11-11-2009", "78597360","1","MOL-02",1,"1",3 )INSERT INTO cuerpo_guia_servicio VALUES ( "10", "1", "1","10m3" Error en la consulta SQL, el error es : 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 '' at line 1

Saludos!
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"
  #2 (permalink)  
Antiguo 30/11/2009, 14:24
 
Fecha de Ingreso: julio-2003
Ubicación: Cochabamba Bolivia
Mensajes: 300
Antigüedad: 20 años, 9 meses
Puntos: 14
Respuesta: Duda con la inserción de datos de mi formulario

Hola
Te recomiendo que revises que tipo de campos son en tu tabla pues veo que estas tratando de ingresar numeros pero lo haces como si fueran alfanumericos, osea los campo que son numericos tiene que ir sin comillas en su valor de variable, alli podria estar tu error de todas maneras seria bueno que postearas los campo que estas insertando y su tipo.

Saludos.
__________________
:policia: Uno para todos y todos para uno.
  #3 (permalink)  
Antiguo 30/11/2009, 14:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Duda con la inserción de datos de mi formulario

bueno, si te marca error... es porque obviamente la sintaxis esta mal!!

el error te dice que la linea 1... y es difícil adivinar cual es en el SQL así de pronto

te sugiero separes tu consulta en lineas.. y así, sabrás exactamente la linea de la consulta que esta mal...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 30/11/2009, 14:54
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Duda con la inserción de datos de mi formulario

Hola, gracias ah ambos .

Corregí lo de las comillas y en los insert y resulta que ahora puedo insertar en la primera tabla "encabezado_guia_servicio" pero no los que estoy mandando a la tabla "cuerpo_guia_servicio". Ademas aun me arroja el error de sintaxis. Aqui dejo lo que mando codigo corrigida las comillas y aplicado el salto de linea:


Código PHP:
//insert encabezado
        
$consulta'INSERT INTO encabezado_guia_servicio 
                    (numero_guia_servicio,fecha_guia,rut_cliente,guia_5081,id_contrato_cliente,id_relleno_sanitario,numero_ticket_relleno,id_estado_guia )
                     VALUES 
                     ( '
.mysql_real_escape_string($_POST['txt_numero_guia_agregar']).', "'.mysql_real_escape_string($_POST['txt_fecha_guia_agregar']).'", "'.substr($_POST['slt_rut_agregar'],0,-2).'",'.mysql_real_escape_string($_POST['txt_5081_guia_agregar']).',"'.$_POST['slt_contrato_agregar'].'",'.$id_relleno[0].','.mysql_real_escape_string($_POST['txt_ticket_guia_agregar']).','.$id_estado[0].' )';
        echo 
"$consulta";
        
mysql_query($consulta,$conexion) or die (' Error en la consulta SQL, el error es : '.mysql_error());
        echo 
" <br> \n";
        
//insert cuerpo
        
$consulta'INSERT INTO cuerpo_guia_servicio (numero_guia_servicio,numero_linea, cantidad,volumen)
         VALUES ( '
.mysql_real_escape_string($_POST['txt_numero_guia_agregar']).', '.mysql_real_escape_string($_POST['txt_linea1_guia_agregar']).', '.mysql_real_escape_string($_POST['txt_cantidad1_guia_agregar']).',"'.mysql_real_escape_string($_POST['txt_volumen1_guia_agregar']).'"';
        echo 
"$consulta";
        
mysql_query($consulta,$conexion) or die (' Error en la consulta SQL, el error es : '.mysql_error()); 

Esto me arroja al imprimir por pantalla:
INSERT INTO encabezado_guia_servicio (numero_guia_servicio,fecha_guia,rut_cliente,guia_ 5081,id_contrato_cliente,id_relleno_sanitario,nume ro_ticket_relleno,id_estado_guia ) VALUES ( 13, "11-11-2009", "97894490",1029,"CDC-01",1,1,2 )
INSERT INTO cuerpo_guia_servicio (numero_guia_servicio,numero_linea, cantidad,volumen) VALUES ( 13, 1, 10,"10m3" Error en la consulta SQL, el error es : 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 '' at line 2


¿sera que hay que poner algo entre un insert y el otro?


Gracias
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"

Última edición por Capote; 30/11/2009 a las 15:04
  #5 (permalink)  
Antiguo 30/11/2009, 15:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Duda con la inserción de datos de mi formulario

Cita:
Iniciado por Capote Ver Mensaje
[...] ¿sera que hay que poner algo entre un insert y el otro? [...]
definitivamente si!!

no todos los RDBMS lo permiten, pero si es así... es entonces el punto-y-coma el separador para múltiples consultas...

Cita:
INSERT INTO tabla(x,y) VALUES('q', 'p');
INSERT INTO tabla(x,y) VALUES('q', 'p')
o bien, usar la sintaxis alternativa
Cita:
INSERT INTO tabla(x,y) VALUES('q', 'p'),
('q', 'p'),
('q', 'p')
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 30/11/2009, 15:44
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Duda con la inserción de datos de mi formulario

Ahora si funciona perfecto.

Gracias a ambos
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"
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 17:23.