Mensajes [1] - Enviado el Jueves 06 de Marzo de 2008 a las 17:44hs
Tengo un formulario de registro de ususarios y necesito que el campo cedula sea unico por lo que en la tabla lo defino como un indice UNIQUE. El problema es que cuando un valor se repite lo que se muestra es el error del servidor y quiero mostrar algo mas amigable al usuario mi codigo es este
<?php
if($_POST[nombre])
{
include "conexion.php";
$sql = "SELECT COUNT(*) as valor FROM diplomados WHERE cedula=".$cedula;
$consulta=mysql_query($sql,$conexion);
if ($cedula == 1) {
echo "Campo cedula ya esta registrado";
} else {
$sql="insert into diplomados values
('','$_POST[nombre]','$_POST[apellido]','$_POST[cedula]','$_POST[sexo]','$_POST[inscripcion]','$_POST[email]','$_POST[telefono]')";
$consulta=mysql_query($sql,$conexion) or die( mysql_error() );
}
if(!mysql_error()) {print "Bien";}
else {"Intente mas tarde";}
mysql_close($conexion);
}
?>
Alguien podria ayudarme en este caso. Gracias
Mensajes [14] - Enviado el Lunes 14 de Abril de 2008 a las 02:34hs
Hola,
La sintaxis parece estar bien, antes que nada haces un select para ver si ya existe la cedula, tendrias que chequear si realmente esta funcionando, si el campo cedula no es INT, es probable que no este comparando bien.
Lo que podes hacer es lo siguiente:
$sql="select cedula from diplomados where cedula={$cedula}";
$consulta=mysql_query($sql,$conexion);
if($consulta){
echo "La cedula ya existe";
}else{
// resto de codigo
}
Si la consulta devuelve un resultado significa que ya existe y no hace falta el count(*).
Espero que te sirva.
Saludos