Foros del Web » Programando para Internet » PHP »

me falla el insert en la base de datos

Estas en el tema de me falla el insert en la base de datos en el foro de PHP en Foros del Web. hola tengo un insert en una base de datos mysql con php5 Código PHP: <? //Conexion con la base mysql_connect ( "localhost" , "root" , "ushuai" ) or die( "No s'ha pogut connectar a la base de dades" ...
  #1 (permalink)  
Antiguo 25/01/2009, 14:26
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 1 mes
Puntos: 8
me falla el insert en la base de datos

hola tengo un insert en una base de datos mysql con php5

Código PHP:
<?
//Conexion con la base
mysql_connect("localhost","root","ushuai") or die("No s'ha pogut connectar a la base de dades");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("test");
//agafo les variables
$f_nom $_GET["nom"];
$f_cognoms $_GET["cognoms"];
$f_edat $_GET["edat"];
$f_idioma $_GET["idioma"];
$f_id $_GET["id"];
 
//Creamos la sentencia SQL y la ejecutamos
$Insert="INSERT INTO proves (nom, cognoms, edat, idioma) VALUES('$f_nom', 'f_cognoms', $f_edat, '$f_idioma')";
$results=mysql_query($Insert) or die(mysql_error());;
?>
pero lo que pasa es que si des de el formulario envio un campo vacio me da un error y no me lo da de alta el nueve registro
  #2 (permalink)  
Antiguo 25/01/2009, 14:28
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 1 mes
Puntos: 8
Respuesta: me falla el insert en la base de datos

pongo el user y el pasword por que lo tengo en local je je
  #3 (permalink)  
Antiguo 25/01/2009, 14:54
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: me falla el insert en la base de datos

Tienes que hacer una validacion de formulario.

Un ejemplo:
Código PHP:
<?php
if(trim($campo1) == '' OR trim($campo2) == '') {
  
//si alguno de los campos esta vacio, no los proceses
}
?>
  #4 (permalink)  
Antiguo 25/01/2009, 15:10
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 1 mes
Puntos: 8
Respuesta: me falla el insert en la base de datos

pero si quiero que me llene campos an blanco

es que justamente me he puesto con lo del php a fondo y no parare hasta que aprenda
  #5 (permalink)  
Antiguo 25/01/2009, 15:23
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: me falla el insert en la base de datos

Código PHP:
<?php
if(trim($campo) == ''$campo 'valor por defecto';
?>
  #6 (permalink)  
Antiguo 25/01/2009, 16:04
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: me falla el insert en la base de datos

Entonces lo que tienes que hacer es definir la sentencia SQL de modo que pueda adaptarse a los valores enviados, de este modo:

$Insert="INSERT INTO proves SET";
if ($f_nom) $Insert .= " nom = '$f_nom'";
if ($f_cognoms) $Insert .= ", cognoms = '$f_cognoms'";
if ($f_edat) $Insert .= ", edat = '$f_edat'";
if ($f_idioma) $Insert .= ", idioma = '$f_idioma'";

Espero que te sirva.
  #7 (permalink)  
Antiguo 25/01/2009, 16:17
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 1 mes
Puntos: 8
Respuesta: me falla el insert en la base de datos

Eljavista funciona bien

pero lo que pasa es que si nom esta en blanco me lanza un error

para un update seria lo mismo?
  #8 (permalink)  
Antiguo 26/01/2009, 01:09
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 1 mes
Puntos: 8
Respuesta: me falla el insert en la base de datos

osea que si el primer campo va lleno funciuona bien

pero si el primer campo va vacio me lanza un error
  #9 (permalink)  
Antiguo 26/01/2009, 09:39
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: me falla el insert en la base de datos

Claro, hay un error. Bueno, entonces la cosa podría hacerse así:

$campos = array();
$Insert="INSERT INTO proves SET";

if ($f_nom) $campos[] = "nom = '$f_nom'";
if ($f_cognoms) $campos[] = "cognoms = '$f_cognoms'";
if ($f_edat) $campos[] = "edat = '$f_edat'";
if ($f_idioma) $campos[] = "idioma = '$f_idioma'";

$Insert .= implode(", ", $campos);

Con eso espero que quede bien, para el Update se haría de igual modo.
  #10 (permalink)  
Antiguo 26/01/2009, 09:54
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 1 mes
Puntos: 8
Respuesta: me falla el insert en la base de datos

funciona bien

pero ahora para el update he modificado pero me falla

Código PHP:
$campos = array();
$Update="UPDATE proves SET ";
if (
$f_nom$campos[] = "nom = '$f_nom'";
if (
$f_cognoms$campos[] = "cognoms = '$f_cognoms'";
if (
$f_edat$campos[] = "edat = '$f_edat'";
if (
$f_idioma$campos[] = "idioma = '$f_idioma'";
$Update .= implode(", "$campos);
$Update $Update ." Where id=$f_id"

$results=mysql_query($Update) or die("Error al donar d'alta" mysql_error()); 
he puesto $Update = $Update ." Where id=$f_id" para que meañada en la linea pero me da un error de parser
  #11 (permalink)  
Antiguo 26/01/2009, 10:48
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: me falla el insert en la base de datos

Y cuál es el error que se muestra?
  #12 (permalink)  
Antiguo 26/01/2009, 11:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: me falla el insert en la base de datos

Deberías hacer un echo $Update para que veas como te genero la consulta y así identificar más de cerca el error.

Saludos
  #13 (permalink)  
Antiguo 26/01/2009, 12:45
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 1 mes
Puntos: 8
Respuesta: me falla el insert en la base de datos

el error era este

Parse error: syntax error, unexpected T_VARIABLE in E:\raizf\TALLER_WEB\php\exemples\basesdedades\actu aliza_pro.php on line 37

pero lo solucioné
así

Código PHP:
$campos = array();
$Update="UPDATE proves SET ";
if (
$f_nom$campos[] = "nom = '$f_nom'";
if (
$f_cognoms$campos[] = "cognoms = '$f_cognoms'";
if (
$f_edat$campos[] = "edat = '$f_edat'";
if (
$f_idioma$campos[] = "idioma = '$f_idioma'";
$Update .= implode(", "$campos);
 
$results=mysql_query$Update ." Where id=$f_id") or die("Error al donar d'alta" mysql_error()); 
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 09:27.