ayuda con php y mysql

jesusjalpan

Bovino adolescente
#1
hola tengo una pequeña duda realize un pequeño programita para uso mio donde registro expedientes en una oficina
en la cual trabajo pero me hace falta que me mande un mensaje cuando el folio del expediente se repita me diga que ya existe y no lo guarde este es el codigo de mi programa
espero me puedan ayudar


<html>
<body>

FORM ACTION="asesores.php"METHOD="POST" name="valida">
<table align="center">
<tr>
<td>FOLIO DE EXPEDIENTE:</td>
<td><input type="text" name="folio" value""></td>
</tr>
<tr>
<td>NOMBRE DEL ASESOR:</td>
<td><input type="text" name="nombre" value""></td>
</tr>
<td>ACTIVO:</td>
<td>
<input type="radio" name="activo" value="SI"> SI
<input type="radio" name="activo" value="NO"> NO </td></tr>
<tr>
<td>CURP:<br></td>
<td>
<input type="radio" name="curp" value="SI"> SI
<input type="radio" name="curp" value="NO"> NO </td></tr>
<tr>
<td>ACTA:<br></td>
<td>
<input type="radio" name="acta" value="SI"> SI
<input type="radio" name="acta" value="NO"> NO </td></tr>

<tr>
<td>CONVENIO:<br></td>
<td>
<input type="radio" name="convenio" value="SI"> SI
<input type="radio" name="convenio" value="NO"> NO </td></tr>
<tr>
<td>CERTIFICADO:</td>
<td><select name= "certificado">
<option> Elige </option>
<option> SIN CERTIFICADO </option>
<option> SECUNDARIA </option>
<option> BACHILLERATO </option>
<option> BACH. INCOMPLETO </option>
<option> CARRERA TECNICA </option>
<option> CARR. TEC. INCOMPLETA </option>
<option> LICENCIATURA </option>
<option> LIC. INCOMPLETA </option>
</select></td>
</tr>
<tr>
<td>DOMICILIO:</td>
<td><input type="text" name="domicilio" value=""></td>
</tr>
<tr>
<td>OBSERVACIONES:</td>
<td><input type="text" name="observaciones" value=""></td>
<tr>
<td><div align="center">
<input name="button" type="button" onclick="valida_envio()" value="Aceptar" />
</div></td>
<td align="center">
<div align="center">
<div align="center"></div>
</table>
<a/><br>
<br>

<a href="modificacion.php"><a/>


<?php
$folio=$_POST['folio'];
$nombre=$_POST['nombre'];
$activo=$_POST['activo'];
$curp=$_POST['curp'];
$acta=$_POST['acta'];
$convenio=$_POST['convenio'];
$certificado=$_POST['certificado'];
$domicilio=$_POST['domicilio'];
$observaciones=$_POST['observaciones'];




$conexion=mysql_connect("localhost","root","")or die("error en la conexion");

mysql_select_db("inea",$conexion);


$consulta=mysql_query("insert into asesores(folio,nombre,activo,curp,acta,convenio,certificado,domicilio,observaciones)values('$folio','$nombre','$activo','$curp','$acta','$convenio','$certificado','$domicilio','$observaciones')",$conexion);


mysql_close($conexion);

?>
</form>


</body>

</html>
 

mxd

Bovino maduro
#3
Es simple, antes del insert realiza una consulta a la tabla asesores, seria algo asi select folio from asesores where folio = '$folio' y valida los datos que te regresa el query para que sepas si existe o no el folio.

Suerte!
 

zaidner

Bovino maduro
#4
utiliza esta funcion:


$consulta = "SELECT *FROM asesores WHERE folio = '$folio'";
$ejecutar_consulta=$conexion->query($consulta) or die(mysql_error());
$file=$ejecutar_consulta->fetch_assoc();

if ($file>0)
{
echo "Ya exite ese folio";
}

y ya con esto te estaria indicando que ya existe un folio existente...

espero y te a ya servido mi info ;)
 

dmntnes

Bovino maduro
#5
utiliza esta funcion:


$consulta = "SELECT *FROM asesores WHERE folio = '$folio'";
$ejecutar_consulta=$conexion->query($consulta) or die(mysql_error());
$file=$ejecutar_consulta->fetch_assoc();

if ($file>0)
{
echo "Ya exite ese folio";
}

y ya con esto te estaria indicando que ya existe un folio existente...

espero y te a ya servido mi info ;)
Es simple, antes del insert realiza una consulta a la tabla asesores, seria algo asi select folio from asesores where folio = '$folio' y valida los datos que te regresa el query para que sepas si existe o no el folio.

Suerte!
complementando lo del mensaje lo puedes hacer con javascript o jquery lo que necesitas es un alert, es decir envias los datos por javascript los recibe un archivo php (que hace lo que dice mxd y zaidner) y luego regrese true o false eso lo toma de nuevo tu archivo js y dependiendo del valor del return digamos true regresa el mensaje insertado el folio nuevo y false el folio ingresado ya existe
 

Exoterico

Bovino maduro
#6
Yo creo que lo más recomendado es directamente en la base de datos establecer el campo del folio como una llave única, eso le dará integridad a la base de datos independientemente del lenguaje. Al intentar agregar el registro la misma función "die(mysql_error())" te botará el error directamente desde la base de datos, solo tendrías que capturar ese error con un Try Exception para avisar que ya existe.
 
#7
has la consulta a la tabla donde estan guardados tus folios donde el folio es igual al folio insertado y compruebas ocnif si es igual al folio que te marque un error
 
#8
Yo creo que lo más recomendado es directamente en la base de datos establecer el campo del folio como una llave única, eso le dará integridad a la base de datos independientemente del lenguaje. Al intentar agregar el registro la misma función "die(mysql_error())" te botará el error directamente desde la base de datos, solo tendrías que capturar ese error con un Try Exception para avisar que ya existe.
Pues estás violando una de las reglas de normalización, en este caso la primera, "la unicidad". Los campos que sean claves en una tabla deben ser aquellos que distingan en forma única a cada registro, y un folio no lo es, porque en cualquier momento se puede requerir "reiniciar la foliación", o si vamos más aya al manejar sucursales o empresas dentro de nuestro sistema por fuerza el folio tendrá que repetirse.

¿Alguna otra sugerencia?
 
Arriba