Foros del Web » Programando para Internet » PHP »

Problema con el ingreso de datos a mi bd

Estas en el tema de Problema con el ingreso de datos a mi bd en el foro de PHP en Foros del Web. Hola. sucede que tengo un formulario en donde ingreso una serie de datos, uno de ellos ""numero_ticket" es un FK que viene de otra tabla, ...
  #1 (permalink)  
Antiguo 08/12/2009, 10:01
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 17 años, 4 meses
Puntos: 0
Problema con el ingreso de datos a mi bd

Hola.
sucede que tengo un formulario en donde ingreso una serie de datos, uno de ellos ""numero_ticket" es un FK que viene de otra tabla, este dato no es necesario que el usuario lo ingrese por ende queda vacio si es asi. Pero en mi base de datos no puedo guardar un "vacio" en ese campo puesto que es FK, por lo que yo antes de guardarlo por medio de la consulta estoy preguntando por su contenido si es vacio le asigno NULL para poder almacenarlo de lo contrario lo almaceno tal cual (pues viene algo).
Despues de haber preguntado por el contenido de dicho parametro, lo paso a mi conuslta sql me sigue almacenando vacio y da error.

Aqui como lo estoy haciendo.

Código PHP:

if ($_POST['txt_ticket] =="")
        {
            $num_ticket = NULL;
            //echo"<br> \n";
            //echo"$num_ticket";
        }
        else
        {
            $num_ticket = $_POST['
txt_ticket'];
            //echo"<br> \n";
            //echo"$num_ticket";
        }

//Y mi consulta esta asi:

$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']).'
                        
"'.mysql_real_escape_string($_POST['txt_fecha_guia']).'"
                       
"'.$rut_cliente[0].'",
                       
'.mysql_real_escape_string($_POST['txt_5081_guia']).',
                       
"'.$_POST['contrato'].'",
                       
'.$id_relleno[0].',
                       
'.$num_ticket.',
                       
'.$id_estado[0].');; 
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"
  #2 (permalink)  
Antiguo 08/12/2009, 10:06
 
Fecha de Ingreso: octubre-2009
Mensajes: 125
Antigüedad: 15 años
Puntos: 1
Respuesta: Problema con el ingreso de datos a mi bd

Cita:
Iniciado por Capote Ver Mensaje

if ($_POST['txt_ticket] =="")
[/PHP]
ehi esta mal te falto una comilla simple
if($_POST['txt_ticket'] =="")
  #3 (permalink)  
Antiguo 08/12/2009, 10:10
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Problema con el ingreso de datos a mi bd

te falto cerrar una comilla simple en
Código php:
Ver original
  1. if ($_POST['txt_ticket] =="")
por
Código php:
Ver original
  1. if ($_POST['txt_ticket'] =="")

y esto ultimo, cierras mal la sentencia:
Código php:
Ver original
  1. $consulta= 'INSERT INTO encabezado_guia_servicio
  2.        (numero_guia_servicio,fecha_guia,rut_cliente,guia_5081,id_contrato_cliente,id_relleno_sanitario,numero_ticket_relleno,id_estado_guia )
  3.                     VALUES
  4.                     ( '.mysql_real_escape_string($_POST['txt_numero_guia']).',
  5.                        "'.mysql_real_escape_string($_POST['txt_fecha_guia']).'",
  6.                       "'.$rut_cliente[0].'",
  7.                       '.mysql_real_escape_string($_POST['txt_5081_guia']).',
  8.                       "'.$_POST['contrato'].'",
  9.                       '.$id_relleno[0].',
  10.                       '.$num_ticket.',
  11.                       '.$id_estado[0].');;
por:
Código php:
Ver original
  1. $consulta= 'INSERT INTO encabezado_guia_servicio
  2.        (numero_guia_servicio,fecha_guia,rut_cliente,guia_5081,id_contrato_cliente,id_relleno_sanitario,numero_ticket_relleno,id_estado_guia )
  3.                     VALUES
  4.                     ( '.mysql_real_escape_string($_POST['txt_numero_guia']).',
  5.                        "'.mysql_real_escape_string($_POST['txt_fecha_guia']).'",
  6.                       "'.$rut_cliente[0].'",
  7.                       '.mysql_real_escape_string($_POST['txt_5081_guia']).',
  8.                       "'.$_POST['contrato'].'",
  9.                       '.$id_relleno[0].',
  10.                       '.$num_ticket.',
  11.                       '.$id_estado[0].')';
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #4 (permalink)  
Antiguo 08/12/2009, 10:33
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Problema con el ingreso de datos a mi bd

Hola

Disculpen, cuando copie el código acá lo copie mal, pues en mi archivo que trabajo esta como uds lo corrijen. Osea asi:


Código PHP:
   if ($_POST['txt_ticket'] ==""
Le estoy haciendo un echo a la consulta y esto me arroja:

Código PHP:

INSERT INTO encabezado_guia 
(numero_guia,fecha_guia,rut_cliente,guia_5081,id_contrato_cliente,id_relleno_sanitario,numero_ticket,id_estado_guia VALUES 22"2009-11-11""90503018"321"CDC-01"1, , 2); Error en la consulta SQLel error es You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near ' 2)' at line 10 
si se fijasn entre el 1 y el ultimo 2 va vacio, y deberia ir en el caso de que no se ingreso nada un NULL pues para hice esa validación.

@masterojitos, lo que me mencionas del ; final en mi sentencia SQL, es que despues de ella se ejecuta otra, por eso lo del ;. Lo raro es que nose por que salio sin la comilla simple entre los dos ;. Pero en mi archivo esta bien ;) osea así


Código PHP:
INSERT INTO '...
...
 '
.$id_estado[0].');'
Gracias!
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"
  #5 (permalink)  
Antiguo 08/12/2009, 10:38
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Problema con el ingreso de datos a mi bd

ps esto:

INSERT INTO encabezado_guia (numero_guia,fecha_guia,rut_cliente,guia_5081,id_c ontrato_cliente,id_relleno_sanitario,numero_ticket ,id_estado_guia ) VALUES ( 22, "2009-11-11", "90503018", 321, "CDC-01", 1, , 2);

deberia ser asi:

INSERT INTO encabezado_guia (numero_guia,fecha_guia,rut_cliente,guia_5081,id_c ontrato_cliente,id_relleno_sanitario,numero_ticket ,id_estado_guia ) VALUES ( 22, "2009-11-11", "90503018", 321, "CDC-01", 1, '' , 2);


ya que en el penultimo campo no envias nada, y minimo debe haber comillas en blanco.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #6 (permalink)  
Antiguo 08/12/2009, 11:02
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Problema con el ingreso de datos a mi bd

Pero si en mi consulta en PHP estan las comillas simples de la variable que $num_ticket

Código PHP:
INSERT INTO(
....
....
                    
'.$id_relleno[0].',
                    
'.$num_ticket.',
....
.... 
No comprendo que estoy haciendo mal
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"
  #7 (permalink)  
Antiguo 08/12/2009, 11:03
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Problema con el ingreso de datos a mi bd

ps no, esas comillas son del php, osea aquellas que habren y cierras la cadena sql.
deberia ser asi tu sentencia:

Código PHP:
$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']).'", "'.mysql_real_escape_string($_POST['txt_fecha_guia']).'", "'.$rut_cliente[0].'", "'.mysql_real_escape_string($_POST['txt_5081_guia']).'", "'.$_POST['contrato'].'", "'.$id_relleno[0].'", "'.$num_ticket.'", "'.$id_estado[0].'")'
suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog

Última edición por masterojitos; 08/12/2009 a las 11:09
  #8 (permalink)  
Antiguo 08/12/2009, 11:09
Avatar de Vitesse92  
Fecha de Ingreso: diciembre-2009
Ubicación: Internet
Mensajes: 145
Antigüedad: 14 años, 11 meses
Puntos: 5
Respuesta: Problema con el ingreso de datos a mi bd

jojo es cierto, deberia quedar asi
Código PHP:
INSERT INTO
.... 
.... 
                   
" '.$id_relleno[0].'"
                    
"'.$num_ticket.'"
.... 
.... 
o algo asi
saludos
:p
  #9 (permalink)  
Antiguo 08/12/2009, 11:11
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Problema con el ingreso de datos a mi bd

Cita:
Iniciado por masterojitos Ver Mensaje
ps no, esas comillas son del php, osea aquellas que habren y cierras la cadena sql.
deberia ser asi tu sentencia:

Código PHP:
$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']).'", "'.mysql_real_escape_string($_POST['txt_fecha_guia']).'", "'.$rut_cliente[0].'", "'.mysql_real_escape_string($_POST['txt_5081_guia']).'", "'.$_POST['contrato'].'", "'.$id_relleno[0].'", "'.$num_ticket.'", "'.$id_estado[0].'")'
suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #10 (permalink)  
Antiguo 08/12/2009, 12:19
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Problema con el ingreso de datos a mi bd

No puedo solucionarlo, adecue la consulta dejandola como tu me mencionas y manda esto:
Código php:
Ver original
  1. INSERT INTO encabezado_guia_servicio
  2. (numero_guia_servicio,
  3. fecha_guia,rut_cliente,
  4. guia_5081,
  5. id_contrato_cliente,
  6. id_relleno_sanitario,
  7. numero_ticket_relleno,
  8. id_estado_guia)
  9. VALUES
  10. ( '21', "2009-12-08", "56212009", '256',"CRF-02",'1', "", '1');

Y mira, yo por medio de phpmyadmin puedo ingresar datos sin problemas, pero claro, asignando NULL a los parametros en cuestion

Esta sintaxis ocupo:

Código php:
Ver original
  1. INSERT INTO encabezado_guia_servicio (
  2. numero_guia_servicio ,
  3. fecha_guia,
  4. rut_cliente,
  5. guia_5081,
  6. id_contrato_cliente,
  7. id_relleno_sanitario,
  8. numero_ticket_relleno,
  9. id_estado_guia`
  10. )
  11. VALUES
  12. (
  13. '21', "2009-12-08", "56212009", '256' , "CRF-02", '1' , NULL , '1');

LA diferencia es que en el codigo de mi php no me asigna NULL cuando esta vacio y me lo deja tal cual. En cambio si ingreso un 10 en la caja de texto me ingresa sin problemas el 10 en cambio al ser NULL siempre queda vacio.


Nosé, que mas probar :S
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"
  #11 (permalink)  
Antiguo 08/12/2009, 12:37
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 16 años, 3 meses
Puntos: 105
Respuesta: Problema con el ingreso de datos a mi bd

depende de los tipos de campos en tu tabla... si has puesto NULL o NOT NULL.
lo comun que hago es darles NOT NULL y si no ingresan nada ps queda con comillas y si inserta.

para tu caso puedes solucionarlo con validaciones no ???
en vez de pasarle al query los $_POST, primero asiganalos en variables y luego pasalos.

Código PHP:
$var_txt_numero_guia mysql_real_escape_string($_POST['txt_numero_guia']);
$var_txt_fecha_guia mysql_real_escape_string($_POST['txt_fecha_guia']);
$var_rut_cliente $rut_cliente[0];
$var_txt_5081_guia mysql_real_escape_string($_POST['txt_5081_guia']);
$var_contrato $_POST['contrato']
$var_id_relleno $id_relleno[0];
$var_num_ticket = (empty($num_ticket)) ? NULL $num_ticket;
$var_id_estado[0] = $id_estado[0];
$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 ($var_txt_numero_guia, '$var_txt_fecha_guia', '$var_rut_cliente', $var_txt_5081_guia, '$var_contrato', $var_id_relleno, $var_num_ticket, $var_id_estado)"
espero este si te vaya bien.

suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #12 (permalink)  
Antiguo 08/12/2009, 12:47
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Problema con el ingreso de datos a mi bd

Lo pude solucionar para que me enviase NULL y no vacio en la consulta sql la asignación de NULL como valor tenia que ser = "NULL"; con comillas dobles y yo lo tenia solo como = NULL;

Asi tenia que ir:

Código php:
Ver original
  1. if ($_POST['txt_ticket_guia_agregar'] =="")
  2.         {
  3.             $num_ticket ="NULL";
  4.             //echo"$num_ticket";
  5.             //echo"<br> \n";
  6.         }


Muchas gracias por todo!!
__________________
"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 22:17.