Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: skybotter en 17 Junio 2011, 14:30 pm



Título: duplicado de registro en mysql
Publicado por: skybotter en 17 Junio 2011, 14:30 pm
buenas, estoy haciendo un codigo para que inserte unos datos en una tabla, el caso es que cada vez que añado un registro, me mete otro registro más, pero con todos los campos vacíos. además me tira un error logicamente porque alguno de los campos son notnull y el segundo registro que añade esta todo vacío excepto el id que es autoincrement...

os dejo aqui el codigo por si podéis ayudarme, gracias adelantadas.

Código:
if($action == "saveperro"){
// Ahira remplazamos los saltos de linea y el html, para evitar inyecciones html
$nombre = htmlspecialchars(stripslashes(trim($_POST["nombre"])));
$propietario = htmlspecialchars(stripslashes(trim($_POST["propietario"])));
$loe = htmlspecialchars(stripslashes(trim($_POST["loe"])));
$fca = htmlspecialchars(stripslashes(trim($_POST["fca"])));
$mordida = htmlspecialchars(stripslashes(trim($_POST["mordida"])));
$boca = htmlspecialchars(stripslashes(trim($_POST["boca"])));
$ojos = htmlspecialchars(stripslashes(trim($_POST["ojos"])));
$nacimiento = htmlspecialchars(stripslashes(trim($_POST["nacimiento"])));
$padres = htmlspecialchars(stripslashes(trim($_POST["padres"])));
$sexo = $_POST["sexo"];
$imagen = $_POST["imagen"];
$query = mysql_query("INSERT INTO perros (nombre,loe,fca,mordida,boca,ojos,nacimiento,propietario,imagen,padres,sexo) VALUES ('$nombre','$loe','$fca','$mordida','$boca','$ojos','$nacimiento','$propietario','$imagen','$padres','$sexo')");
if($query) {
echo "Perro añadido correctamente";
}else {
echo "No se a podido añadir";
}
}

la conexion de la DB (en un include)
Código:
      $this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS) or die(mysql_error());
      mysql_select_db(DB_NAME, $this->connection) or die(mysql_error());


Título: Re: duplicado de registro en mysql
Publicado por: cassiani en 17 Junio 2011, 16:13 pm
está entrando dos veces dentro del IF vaya usted a saber por qué, tendrías que poner el código completo para que alguno lo revise, aparte, sería recomendable que valides esas variables antes de hacer el INSERT, por ejemplo:

Código:
// si no estan vacias las variables importantes ..
IF (!empty($nombre) && !empty($propietario) && !empty($loe) && ...)
{
   $query = mysql_query("INSERT INTO perros ...
   ...