Foros del Web » Programando para Internet » PHP »

como puedo evitar repetir la introduccion de datos en mysql

Estas en el tema de como puedo evitar repetir la introduccion de datos en mysql en el foro de PHP en Foros del Web. he tratado de entender como realizar esto, soy nuevo programando con php y mysql, lo que quiero sabes es como puedo evitar introducirel mismo dato ...
  #1 (permalink)  
Antiguo 01/02/2007, 09:42
 
Fecha de Ingreso: enero-2007
Mensajes: 13
Antigüedad: 17 años, 3 meses
Puntos: 0
como puedo evitar repetir la introduccion de datos en mysql

he tratado de entender como realizar esto, soy nuevo programando con php y mysql, lo que quiero sabes es como puedo evitar introducirel mismo dato en una tabla especifica, trate de hacer una consulta y de alli ir comparando con la que se quiere que introducir pero no me sale, les agrdesco su ayuda
  #2 (permalink)  
Antiguo 01/02/2007, 10:15
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo Re: como puedo evitar repetir la introduccion de datos en mysql

Pues cuando creas la tabla el campo le pones que sea "unique" y de esa forma la bd ya no permitira que se agrege un dato igual.

Seria bueno que pusieras el código estas usando para saber si esta repetido el elemento.

Saludillos.

Última edición por mauled; 01/02/2007 a las 10:28
  #3 (permalink)  
Antiguo 01/02/2007, 10:24
Avatar de Maverickhunter  
Fecha de Ingreso: enero-2006
Mensajes: 43
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: como puedo evitar repetir la introduccion de datos en mysql

También funciona dandole el atributo de "key" pero es mejor "unique" si el campo no es una llave ligada a otra.

Saludos
__________________
Maverickhunter Pepes
  #4 (permalink)  
Antiguo 01/02/2007, 11:33
 
Fecha de Ingreso: enero-2007
Mensajes: 13
Antigüedad: 17 años, 3 meses
Puntos: 0
grax por su sugerencias pero, me referia a que si existe tal dato en la base de datos te lo imprima para que el usuario lo vea y sepa que ya existe, no se si an visto con hotmail u otras pag que al introducir el nombre de un nuevo usuario al escribirlo hay un boton que dice "verificar si el nombre esta disponible" y te lo marca en verde o en rojo, si alguien sabe como hacerlo porfis que me ayude
  #5 (permalink)  
Antiguo 02/02/2007, 02:39
Avatar de alllebor  
Fecha de Ingreso: septiembre-2006
Mensajes: 295
Antigüedad: 17 años, 7 meses
Puntos: 1
Re: como puedo evitar repetir la introduccion de datos en mysql

lo qque puedes hacer es por ejemplo si no quieres que se repita el email, en la base de datos pones en dicho campo "unique" y luego en el script donde procesas e insertas la informacion del formulario que ha rellenado el usuario, haz un tipo de comprobacion con un "if" que si la base de datos no te deja insertar campo, pues que te le salga al usuario un mensaje de error diciendo que el email que ha puesto ya está en uso i muestras el email por pantalla echo $email; o algo asi!
__________________
Quien no me pregunta no se entera!!
  #6 (permalink)  
Antiguo 02/02/2007, 09:11
 
Fecha de Ingreso: enero-2007
Mensajes: 13
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: como puedo evitar repetir la introduccion de datos en mysql

allerbor: tienes el script?
  #7 (permalink)  
Antiguo 04/02/2007, 15:48
pez
 
Fecha de Ingreso: enero-2002
Mensajes: 354
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: como puedo evitar repetir la introduccion de datos en mysql

Un ejemplo:

Código PHP:
function comprobar_existencia($tabla,$columna,$dato){

  
$result mysql_query("SELECT * FROM $tabla WHERE $columna='$dato'");
 
//Comprobamos si ya existen los nuevos datos.
  
if ($result && (mysql_num_rows($result)>0))
          return 
true;

// liberamos la memoria usada por la consulta, ya que tenemos estos datos en el Array.
mysql_free_result($result);

  #8 (permalink)  
Antiguo 05/02/2007, 01:21
Avatar de ..::MaRcOs::..  
Fecha de Ingreso: diciembre-2006
Mensajes: 328
Antigüedad: 17 años, 4 meses
Puntos: 3
Re: como puedo evitar repetir la introduccion de datos en mysql

no se si es lo q estas buscando pero para no repetir por ejemplo el nick en mi bd utilizo esto...

$comprobar=mysql_query("SELECT nick FROM usuarios WHERE nick='$_POST[nick]' ");
if($nick_ok=mysql_fetch_array($comprobar))
{
echo 'El Nick Que Ingresaste Ya Se Encuentra Registrado';
exit();
}

salu2
  #9 (permalink)  
Antiguo 07/02/2007, 12:35
 
Fecha de Ingreso: enero-2007
Mensajes: 13
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: como puedo evitar repetir la introduccion de datos en mysql

gracias por sus sugerencias!!!

e tomado de todos y pude lograr mi objetivo, lo que hice fue que comverti el campo en "unique" asi ya no habia manera de que se repietiera el dato, utilice sesiones para guardar 1 variable para que puediera hacer una comparacion con pagina siguente ya que al introducir 1 dato aumenta las filas, condicione con un "if" al ser iguales marca error, y diferente te dice q si se introdujo el dato en la BD, les comparto el scrpit, son 3 paginas:
-----uno.php------
<?php
session_start()
?>

<html>
<head>
<title></title>
</head>

<body>
<form id="form1" name="form1" method="get" action="dos.php">

<table width="620" height="33" border="1">
<tr>
<td width="144"><input type="text" name="dato" /></td>
<td width="82"><?php
$link = mysql_connect("localhost", "root", "password");
//selecciona base de datos
mysql_select_db("base_datos", $link);
//selecciona tabla
$result = mysql_query("SELECT * FROM tabla", $link);
//adquiere numeros en la variable
$num_rows1 = mysql_num_rows($result);

session_register("num_rows1");
echo "$num_rows1 Rows\n";
?>

</td>
<td width="372"><input type="submit" name="Submit" value="Submit" /></td>
</tr>
</table>
</form>
</body>
</html>

----dos.php----------------
<?php
session_start()
?>
<?php
include("conexion.php");
$query = "INSERT INTO tabla ( dato ) VALUES ('".$dato."')";
$res = mysql_query($query);
$usuarioid = mysql_insert_id();

?>


<html>
<head>

<title></title>
</head>

<body>
<?php
echo "$num_rows1 Rows";


?>

<?php
$link = mysql_connect("localhost", "root", "password");
mysql_select_db("base_dato", $link);
$result = mysql_query("SELECT * FROM tabla", $link);
$num_rows2 = mysql_num_rows($result);



echo ("<p></p>");
echo "$num_rows2 Rows\n";

if ($num_rows1 == $num_rows2)
{
echo ("<p>no inserto dato en la BD </p>");
}
else
{
if ($num_rows1 != $num_rows2)
{
echo ("<p>insersion correcta </p>");
}
}
?>


</body>
</html>

---------------conexion.php------------------
<?

$hostname="localhost";
$username="root";
$password="";
$dbname="mantto";


mysql_connect($hostname,$username, $password) OR DIE ("<html><script language='JavaScript'>window.location.href ='error.php?err=bd'</script></html>");
mysql_select_db($dbname) or DIE ("<html><script language='JavaScript'>window.location.href = 'error.php?err=bd'</script></html>");
?>
  #10 (permalink)  
Antiguo 14/02/2007, 06:10
 
Fecha de Ingreso: febrero-2007
Mensajes: 4
Antigüedad: 17 años, 2 meses
Puntos: 0
Pregunta Re: como puedo evitar repetir la introduccion de datos en mysql

Hola, por error sobre una tabla he ejecutado la siguiente sentencia:

ALTER TABLE `Fabricantes` ADD UNIQUE (`Nombre`)

de manera que el campo Nombre de la tabla Fabricantes no pueda tener valores repetidos (este campo Nombre NO ES la clave primaria de la tabla).

Mi pregunta es, ¿cómo puedo deshacer este cambio? ¿Hay alguna manera de cambiar esta propiedad sin tener que borrar ningún registro ni eliminar la tabla?

Gracias.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:22.