Article View: chile.comp.programacion
Article #2229Re: Otra consulta PHP
From: ISO 9001
Date: Fri, 17 Mar 2006 16:48
Date: Fri, 17 Mar 2006 16:48
218 lines
9065 bytes
9065 bytes
�C�mo hago para que MySql no me permita ingresar m�s de un dato irrepetible?
(a nivel de la BD, no de PHP, pues ah� verificar� antes del ingreso)
Gracias.
"gato2005_cl" <misforos.chileSINESTO@gmail.com> escribi� en el mensaje
news:dsiu03$s49$1@news.nivel5.cl...
> La �nica forma que se me ocurre es tener 2 p�ginas similares:
>
> La primera es el formulario en si, la segunda es el formulario m�s el
> c�digo del proceso de la base de datos.
>
> La segunda funciona como archivo de respuesta y proceso al primer
> formulario, generando el formulario y un texto cercano a la clave donde se
> indique la existencia de clave repetida o la falta de alg�n campo junto
> con el c�digo de proceso.
>
> En consecuencia, la comprobacion del formulario y la existencia de los
> campos es mejor generarla.
>
> gato2005_cl escribi�:
>> Esencialmente es desperdicio de recursos acceder dos veces a la tabla.
>> Incluye en el archivo de respuesta dek formulario la comprobacion de la
>> existencia del ingreso y un retorno adecuado a el. Al retornar regresas a
>> la direccion del archivo que contiene el form, marcando el elemento que
>> esta repetido.
>> Para ser m�s visible podrias incluir una etiqueta de texto oculta que
>> especificara el elemento repetido.
>>
>> Wegh escribi�:
>>> Si amigo, si lo tengo asi, esta bien la bdd, no permite ingresar 2
>>> valores
>>> iguales, pero lo que necesito es que el usuario pueda darse cuenta que
>>> sus
>>> datos no fueron ingresados, porque el nombre se repetia, y mandar ese
>>> error
>>> es lo que no me resulta.
>>>
>>> "RaCo" <shopper@nospamvtr.borramenet> escribi� en el mensaje
>>> news:dshup9$ka0$1@news.nivel5.cl...
>>>> Amigo, tal como te dice otra persona por ah�, en Bases de Datos, cuando
>>>> tienes un dato que no se puede repetir, es necesario que lo pongas como
>>>> Llave �nica.
>>>>
>>>> Me explico, en ocasiones, cuando tienes una Tabla Automovil, �sta
>>>> deber�a tener un atributo Patente. Obviamente dos autos no pueden tener
>>>> la Misma patente. �sto es lo que los Inform�ticos denominamos
>>>> Integridad
>>>> de una Base de datos, espec�ficamente de Dominio, donde una llave no
>>>> puede contener valores nulos ni repetidos.
>>>>
>>>> Por qu� te doy esta lata? b�sicamente porque lo que tu preguntas no
>>>> deber�a ser abordado con PHP (o el lenguaje de programaci�n que uses
>>>> para tu sistema), �so es parte netamente de la Base de datos, si
>>>> "Carda"
>>>> es un elemento un�voco de una Entidad en tu base de datos, pues debes
>>>> decirle a la Base de datos que "Carda" es �nica e irrepetible, y es el
>>>> Sistema Gestor de Base de datos (MySQL, Oracle o qu� se yo qu� motor
>>>> usas) quien debe impedir que el dato repetido se ingrese.
>>>>
>>>> Si tu modelo de datos actual te permite ingresar ese dato repetido
>>>> entonces tu modelo tiene series fallas de seguridad e integridad.
>>>> Imaginate qu� pasar�a si alguien se mete a tu base de datos por otro
>>>> medio que no sea por tu p�gina en PHP e ingrese varios datos "Carda"
>>>> repetidos, pues si tu BD lo permite, el error no se captar�, y as�
>>>> sucesivamente.
>>>>
>>>> Te recomiendo que le eches un ojo a internet y leas algunos libros o
>>>> cursos cortos de Modelamiento de datos y Bases de datos.
>>>>
>>>>
>>>> Wegh wrote:
>>>>> Amigos, quiero pedirles nuevamente a los entendidos en PHP, necesito
>>> evitar
>>>>> que se ingresen 2 "Carda" con el mismo nombre, como lo puedo hacer.
>>>>> Les mando el c�digo donde pido los datos de la "Carda" para ser
>>> ingresados a
>>>>> la Base de datos.
>>>>>
>>>>> De antemano muchas gracias por la ayuda y la paciencia.
>>>>>
>>>>>
>>>>>
>>>>> <html>
>>>>> <head>
>>>>>
>>>>> <script type="text/javascript">
>>>>> function validate()
>>>>> {
>>>>> x=document.ingreso_carda
>>>>> nombre_carda=x.nombre_carda.value
>>>>> ano_carda=x.ano_carda.value
>>>>> marca_carda=x.marca_carda.value
>>>>> ancho_carda=x.ancho_carda.value
>>>>> origen_carda=x.origen_carda.value
>>>>> submitOK="True"
>>>>>
>>>>> if (nombre_carda=="")
>>>>> {
>>>>> alert("Por favor ingrese nombre de carda")
>>>>> submitOK="False"
>>>>> }
>>>>> else
>>>>> if (ano_carda=="")
>>>>> {
>>>>> alert("Por favor ingrese A�o de validaci�n")
>>>>> submitOK="False"
>>>>> }
>>>>>
>>>>> else
>>>>> if (marca_carda=="")
>>>>> {
>>>>> alert("Por favor ingrese Marca de la carda")
>>>>> submitOK="False"
>>>>> }
>>>>>
>>>>> else
>>>>> if (ancho_carda=="")
>>>>> {
>>>>> alert("Por favor ingrese ancho de carda")
>>>>> submitOK="False"
>>>>> }
>>>>>
>>>>> else
>>>>> if (origen_carda=="")
>>>>> {
>>>>> alert("Por favor ingrese origen de la carda")
>>>>> submitOK="False"
>>>>> }
>>>>>
>>>>> if (submitOK=="False")
>>>>> {
>>>>> return false
>>>>> }
>>>>> }
>>>>> </script>
>>>>>
>>>>>
>>>>>
>>>>> <title>Textiles Zahr S.A.</title>
>>>>> <meta http-equiv="Content-Type" content="text/html;
>>>>> charset=iso-8859-1">
>>>>> </head>
>>>>>
>>>>> <body text="#0000A0" link="#0000A0"
>>>>> vlink="#0000A0" alink="#0000A0">
>>>>> <p align="center"><b><font face="Garamond" size="3">INGRESO
>>>>> CARDA</font></b></p>
>>>>>
>>>>>
>>>>> <form action="ingreso_carda_2.php" name="ingreso_carda"
>>> target="principal"
>>>>> id="ingreso_carda" onsubmit="return validate()" method="POST">
>>>>> <div align="center">
>>>>> <center>
>>>>> <table width="602" border="0">
>>>>> <tr>
>>>>> <td width="276" bgcolor="#FFFFFF" bordercolor="#FFFFFF"
>>>>> bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
>>>>> <p align="center">
>>>>> <font size="2" face="Garamond">Nombre:
>>>>> <input name="nombre_carda" type="text" id="nombre" size="20">
>>>>> </font></p>
>>>>> </td>
>>>>> <td width="310" bgcolor="#FFFFFF" bordercolor="#FFFFFF"
>>>>> bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
>>>>> <p align="center">
>>>>> <font size="2" face="Garamond">A�o
>>>>> Fabricaci�n:
>>>>> <input name="ano_carda" type="text" id="ano_carda" size="20">
>>>>> </font></p>
>>>>> </td>
>>>>> </tr>
>>>>> <tr>
>>>>> <td bgcolor="#FFFFFF" bordercolor="#FFFFFF"
>>> bordercolorlight="#FFFFFF"
>>>>> bordercolordark="#FFFFFF" width="276">
>>>>> <p align="center">
>>>>> <font size="2" face="Garamond">Marca:
>>>>> <input name="marca_carda" type="text" id="rut" size="20">
>>>>> </font></p>
>>>>> </td>
>>>>> <td bgcolor="#FFFFFF" bordercolor="#FFFFFF"
>>> bordercolorlight="#FFFFFF"
>>>>> bordercolordark="#FFFFFF" width="310">
>>>>> <p align="center">
>>>>> <font size="2" face="Garamond">Ancho de Trabajo:
>>>>> <input name="ancho_carda" type="text" id="telefono" size="20">
>>>>> </font></p>
>>>>> </td>
>>>>> </tr>
>>>>> <tr>
>>>>> <td bgcolor="#FFFFFF" bordercolor="#FFFFFF"
>>> bordercolorlight="#FFFFFF"
>>>>> bordercolordark="#FFFFFF" width="276">
>>>>> <p align="center">
>>>>> <font size="2" face="Garamond">Origen: <input
>>>>> name="origen_carda" type="text" id="direccion" size="20">
>>>>> </font></p>
>>>>> </td>
>>>>> <td bgcolor="#FFFFFF" bordercolor="#FFFFFF"
>>> bordercolorlight="#FFFFFF"
>>>>> bordercolordark="#FFFFFF" width="310">
>>>>> <p align="center"> </p>
>>>>> </td>
>>>>> </tr>
>>>>> </table>
>>>>> </center>
>>>>> </div>
>>>>> <p align="center"><font size="2">
>>>>> <input type="submit" name="Submit" value="Guardar">
>>>>> </font></p>
>>>>> </form>
>>>>> <p> </p>
>>>>> </body>
>>>>> </html>
>>>>>
>>>>>
>>>
>>>
Technical Details
Message-ID:
<dveq84$3ed$1@spawn.telmexchile.cl>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news4.google.com!news.glorb.com!nntp-server.pubsub.com!news.nivel5.cl!news.vcd.cl!not-for-mail!news.telmexchile.cl!not-for-mailReferences:
<dsfirg$4vq$1@news.nivel5.cl> <dshup9$ka0$1@news.nivel5.cl> <dsiehg$o2v$1@news.nivel5.cl> <dsii5g$p7c$1@news.nivel5.cl> <dsiu03$s49$1@news.nivel5.cl>Show Full Headers
Complete Article Headers
X-Google-Thread: 1593cb,1b87e083a8cadad4 X-Google-Attributes: gid1593cb,public X-Google-Language: SPANISH,ASCII From: "ISO 9001" <paul@malbec.cl> Newsgroups: chile.comp.programacion Subject: Re: Otra consulta PHP Date: Fri, 17 Mar 2006 12:48:26 -0400 Organization: Telmex Chile Lines: 220 Message-ID: <dveq84$3ed$1@spawn.telmexchile.cl> References: <dsfirg$4vq$1@news.nivel5.cl> <dshup9$ka0$1@news.nivel5.cl> <dsiehg$o2v$1@news.nivel5.cl> <dsii5g$p7c$1@news.nivel5.cl> <dsiu03$s49$1@news.nivel5.cl> NNTP-Posting-Host: 200.27.232.210 X-Trace: spawn.telmexchile.cl 1142615108 3533 200.27.232.210 (17 Mar 2006 17:05:08 GMT) X-Complaints-To: usenet@rdc.cl NNTP-Posting-Date: Fri, 17 Mar 2006 17:05:08 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.2180 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 X-RFC2646: Format=Flowed; Response Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!news4.google.com!news.glorb.com!nntp-server.pubsub.com!news.nivel5.cl!news.vcd.cl!not-for-mail!news.telmexchile.cl!not-for-mail