PHP - INSERT que no inserta

 
Vista:

INSERT que no inserta

Publicado por jorge (4 intervenciones) el 20/03/2010 13:11:28
hola, espero me puedan ayudar, soy novato y logre este codigo, que funcionaba hasta q se me ocurrio agregar una validacion para evitar datos duplicados en el campo numero (esta seteado como unique). el asunto es que ahora me larga el mensaje registro ingresado con exito pero el registro no ingresa nunca, por favor donde puedo estar errando ya estoy mareado!!! gracias!!

<?php
$Numero=$_POST['Numero']; //////con esto traigo los valores de un form
$Asunto=$_POST['Asunto'];
$FechaInicio=$_POST['FechaInicio'];
$fch=explode("/",$FechaInicio);
$FechaInicio=$fch[2]."-".$fch[1]."-".$fch[0];
$IdInic=$_POST['IdInic'];
$IdTipo=$_POST['IdTipo'];

if (isset($_POST)) { ////aqui verifico q existen datos y realizo la consulta de duplicacion
include("conec.php");
$link=db_connect();

$sql="SELECT COUNT(*) FROM expedientes WHERE Numero = '$Numero'";
$consulta = mysql_query($sql, $link) or die( mysql_error() );
$dato = mysql_result($consulta, 0);

if ($dato >= 1) { /////si ese numero ya existe no ingreso
echo "Numero de expediente ya registrado - Por Favor verifique";
}
else
{
$link=db_connect(); //////si no existe EN TEORIA DEBERIA INGRESARLO
$Sql="insert into expedientes (Numero, Asunto, FechaInicio, IdInic, IdTipo) values ('$Numero','$Asunto', '$FechaInicio', '$IdInic', '$IdTipo')";
mysql_query($sql, $link) or die( mysql_error() );

if(!mysql_error()) { ////ESTE MENSAJE QUE ME SALE PERO NO LO INGRESA EN LA BD
echo "Registro Ingresado con éxito!!";}
else {
echo "Intente mas tarde";
}

mysql_close($link);
}
}
?>

por favor echenme una manito. gracias de nuevo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:INSERT que no inserta

Publicado por Diego Romero (1450 intervenciones) el 20/03/2010 13:20:25
Estás evaluando mal la validez de la ejecución SQL. mysq_error() no devuelve true o false, devuelve una cadena de texto (y las cadenas de texto son siempre true).

Como no tengo tu tabla, no puedo probar el código pero intenta esto para saber si realmente hay un error en la sentencia INSERT.

mysql_query($sql, $link);
if (mysql_errno($link) != 0) { echo mysql_errno($link).": ".mysql_error($link);}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:INSERT que no inserta

Publicado por jorge (4 intervenciones) el 20/03/2010 13:50:51
gracias diego por tu respuesta deduzco q estas lineas debo cambiar en la consulta de validacion no? bueno, asi lo hice pero sih¡gue todo igual. yo pruebo la validacion y funciona perfecto, es decir "salta" cuando hay un numero repetido, el unico inconveniente es que no ingresa el nuevo registro. denuevo gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:INSERT que no inserta

Publicado por jorge (4 intervenciones) el 20/03/2010 16:07:17
a ver si podemos seguir este es el codigo que SI funciona pero no valida el dato duplicado. Como deberia agregar entonces el resto para q me haga esa funcion

<?php
$Numero=$_POST['Numero'];
$Asunto=$_POST['Asunto'];
$FechaInicio=$_POST['FechaInicio'];
$fch=explode("/",$FechaInicio);
$FechaInicio=$fch[2]."-".$fch[1]."-".$fch[0];
$IdInic=$_POST['IdInic'];
$IdTipo=$_POST['IdTipo'];
if (isset($_POST)) {
include("conec.php");
$link=db_connect();
$Sql="insert into expedientes (Numero, Asunto, FechaInicio, IdInic, IdTipo) values ('$Numero','$Asunto', '$FechaInicio', '$IdInic', '$IdTipo')";
mysql_query($Sql,$link);
echo "Registro Ingresado con éxito!!";
}
?>

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:INSERT que no inserta SOLUCIONADO

Publicado por jorge (4 intervenciones) el 20/03/2010 18:33:09
ya está era tan simple que no lo veia. en el INSERT la variable $Sql era distinta a la $sql del query. Muchas Gracias Diego de todas formas. saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar