Ayuda Código que verifica que no exista registro en campo repetido
Publicado por Eduardo (185 intervenciones) el 20/04/2018 21:44:38
Buenas tardes, tengo un formulario que contiene un script en Ajax el cual llama a un archivo php, el script Ajax lo que hace es dependiendo de la comprobación del archivo php hace que los campos del formulario se activen o desactiven y que salga una Alert donde dice que un dato esta repetido.
lo que hace el proyecto es no permitir que se repita un valor en este caso el campo nic
todo funciona perfecto es decir si agrego un nic ya agregado este me salta la alerta y me desactiva los campos del formulario hasta que ingrese uno que no exista. pero existe el problema siguiente...en la base de datos existen muchos datos nic vacíos o en blanco lo que hace que el sistema al dejar el campo del formulario en blanco o vació lo toma y lo compara con los datos nic vacíos en la base de datos.
he utilizado esto: (pero no me funciona:
y esto tambien
también he intentado en el condicional pero tampoco me resulta:
Como hago para que se ignore los campos nic vacíos el cual he intentado de todo pero aun así no me funciona. acá dejo parte del script php que hace las consultas. ya que de esta manera al dejar el campo nic vacío en el formulario este no lo compara con ello y así no saca la alerta. ( el campo nic es opcional ya que hay muchos registro que no lo poseen)
aca pongo el archivo php que llama el script..
espero me puedan ayudar.... muchas gracias
lo que hace el proyecto es no permitir que se repita un valor en este caso el campo nic
todo funciona perfecto es decir si agrego un nic ya agregado este me salta la alerta y me desactiva los campos del formulario hasta que ingrese uno que no exista. pero existe el problema siguiente...en la base de datos existen muchos datos nic vacíos o en blanco lo que hace que el sistema al dejar el campo del formulario en blanco o vació lo toma y lo compara con los datos nic vacíos en la base de datos.
he utilizado esto: (pero no me funciona:
1
$query = "select * from datos where nic =$nic AND nic !=''";
y esto tambien
1
select * from datos where nic =$nic AND !ISNULL(nic);
también he intentado en el condicional pero tampoco me resulta:
1
if ((mysql_num_rows(@$results) > 0) || ($nic!=''))
Como hago para que se ignore los campos nic vacíos el cual he intentado de todo pero aun así no me funciona. acá dejo parte del script php que hace las consultas. ya que de esta manera al dejar el campo nic vacío en el formulario este no lo compara con ello y así no saca la alerta. ( el campo nic es opcional ya que hay muchos registro que no lo poseen)
aca pongo el archivo php que llama el script..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
//------------------------
define('DB_SERVER', 'localhost');
define('DB_SERVER_USERNAME', 'usersuserrr);
define('DB_SERVER_PASSWORD', '**************');
define('DB_DATABASE', 'BasedeDatos');
$conexion = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD);
mysql_select_db(DB_DATABASE, $conexion);
//----------------------------
if($_REQUEST)
{
$nic = $_REQUEST['nic'];
$query = "select * from datos where nic =$nic";
$results = mysql_query($query) or die('ok');
if(mysql_num_rows(@$results) > 0)
{
echo '<div id="Error"></div>';
echo "<script type=''>alert('Ya existe el Nic $nic en la Base de Datos');</script>";
}
else
{
echo "";
}
}?>
espero me puedan ayudar.... muchas gracias
Valora esta pregunta
0