Foros del Web » Programando para Internet » PHP »

comprobar si ya existe en BD

Estas en el tema de comprobar si ya existe en BD en el foro de PHP en Foros del Web. buenas tengo este formulario: html> <head> <title>insertar datos de usuarios</title> </head> <body> Introduzca sus datos para darse de alta <form action="creadora.php" method=post> <p>Introduzca sus datos:<br ...
  #1 (permalink)  
Antiguo 13/12/2005, 11:58
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 12 años
Puntos: 0
comprobar si ya existe en BD

buenas tengo este formulario:
html>
<head>
<title>insertar datos de usuarios</title>


</head>
<body>
Introduzca sus datos para darse de alta
<form action="creadora.php" method=post>
<p>Introduzca sus datos:<br />
Nombre: <input type="text" name="nombre" size="20" maxlength="255" /><br />
Apellido: <input type="text" name="apellido" size="20" maxlength="255" /><br />
Fecha de Nacimiento: <input type="date" name="nacimiento" size="20" maxlength="255" /><br />
Email: <input type="text" name="email" size="25" maxlength="255" /><br />
Nombre de usuario: <input type="text" name="usuario" size="20" maxlength="255" /><br />
Contraseña: <input type="text" name="contrasenia" size="20" maxlength="255" /><br />
<input type="submit" value="ALTA" /></p>
</body>
</html>

y se lo paso a creadora... Lo que quiero es que en creadora me mire si ya hay un usuario registrado con ese nombre y ese apellido para evitar que un usuario se registre dos veces.
gracias
gracias
  #2 (permalink)  
Antiguo 13/12/2005, 12:48
Avatar de flaconovato  
Fecha de Ingreso: noviembre-2005
Ubicación: Bogota, Colombia
Mensajes: 137
Antigüedad: 12 años, 1 mes
Puntos: 1
De acuerdo comprobar si ya existe en BD

en creadora los debes recibir asi
Código PHP:
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido']; 
y luego hacer una consulta a tu BD exactamente a la tabla donde tienes almacenados los usuarios y comprobar si exiten o no

algo asi:

Código PHP:
$consul mysql_db_query($database,"SELECT CampoNombre, CampoApellido FROM TablaUsuario WHERE CampoNombre= $nombre AND CampoApellido=$apellido");
if(
$row mysql_fetch_array($consul))
     echo 
"Usuario $nombre $apellido ya Exite"
estoy asumiendo que tienes tu BD en MySql


Saludos
__________________
El pueblo que se resigna a tecnologías pasadas, sucumbe en el campo de la ignorancia y se entierra en sus ideales.:arriba: :arriba:
  #3 (permalink)  
Antiguo 13/12/2005, 13:29
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 12 años
Puntos: 0
me da error en la linea:
if($row = mysql_fetch_array($consul))
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\proyecto\www\creadora.php on line 46
Si es Mysql
gracias
  #4 (permalink)  
Antiguo 13/12/2005, 13:40
Avatar de flaconovato  
Fecha de Ingreso: noviembre-2005
Ubicación: Bogota, Colombia
Mensajes: 137
Antigüedad: 12 años, 1 mes
Puntos: 1
De acuerdo comprobar si ya existe en BD

Revisa tu consulta... puede ser que tengas algun error hay...

y quieres coloca parte del codigo a ver si te podemos ayudar..

Código PHP:
$consul mysql_db_query($database,"SELECT CampoNombre, CampoApellido FROM TablaUsuario WHERE CampoNombre = '$nombre' AND CampoApellido = '$apellido'");
if(
$row mysql_fetch_array($consul))
     echo 
"Usuario $nombre $apellido ya Exite"
Que pena se me olvidaban la comillas de '$nombre' y las de '$apellido'
__________________
El pueblo que se resigna a tecnologías pasadas, sucumbe en el campo de la ignorancia y se entierra en sus ideales.:arriba: :arriba:

Última edición por flaconovato; 13/12/2005 a las 14:00
  #5 (permalink)  
Antiguo 14/12/2005, 03:35
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 12 años
Puntos: 0
esta es la pagina donde recojo el formulario:
<html>

<head>
<title>creadora</title>
</head>

<body>
<?php
/*Esta pagina recibe los datos del index y los mete en la tabla usuarios de la base de datos proyecto*/
function comprobar_mail($mail)
{
if (!ereg("^([a-zA-Z0-9._]+)@([a-zA-Z0-9.-]+).([a-zA-Z]{2,4})$",$mail)){
return FALSE;
} else {
return TRUE;
}
}
$host= "localhost";
$user="root";
$password="";
$nombreBD="proyecto";
$tabla="usuarios";
$link=mysql_connect($host, $user, $password);
mysql_select_db($nombreBD,$link);

$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
$nacimiento=$_POST['nacimiento'];
$email=$_POST['apellido'];
$usuario=$_POST['usuario'];
$contrasenia=$_POST['contrasenia'];

$consul = mysql_db_query($nombreBD,"SELECT nombre, apellido FROM $tabla WHERE nombre= $nombre AND apellido=$apellido");

if (empty($nombre) or empty($apellido) or empty($nacimiento) or empty($usuario) or empty($contrasenia))
{
header ("Location:revacio.php");
exit;
}
elseif(comprobar_mail($email))
{
header("Location:remalmail.php");
exit;
}
if($row = mysql_fetch_array($consul))
{
header ("Location:reyareg.php");
}
mysql_close($link);
?>
</body>
</html>

gracias
  #6 (permalink)  
Antiguo 14/12/2005, 03:57
 
Fecha de Ingreso: noviembre-2005
Mensajes: 139
Antigüedad: 12 años
Puntos: 0
ya esta... eran las comillas
  #7 (permalink)  
Antiguo 14/12/2005, 04:34
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Varias anotaciones:

- Hay una FAQ que trata tu consulta . Se titula "Cómo evitar repetir registros en mi BD", se basa en lo mismo: buscar la existencia de dichos registros.

- Ponle "prioridades" a los procesos de tu script. Primero consultas en la BD y después validas si los datos existen... pero si no existiesen ¿qué buscas entonces?; primero ve que haya datos, después buscalos .

- Cuando valides si un campo no viene vacio, hazlo sobre el $_POST no sobre una variable a la que le asignas dicho valor... lo mismo que lo anterior: si $_POST['algo'] viene vacio ¿qué asignas entonces? .
Código PHP:
if(!empty($_POST['algo'])) // si no esta vacio
     
$algo$_POST['algo']; // entonces sí 
- La función mysql_fetch_array() es para recuperar datos... ¿y si no se encontraron? (lo mismo). En su lugar usa mysql_num_rows() (en la FAQ que mencioné) de la sig manera:
Código PHP:
$busquedamysql_query("SELECT ... etc");
if(
mysql_num_rows($busqueda)>) { // ó igual/diferente de 0... como lo quieras ver
      
echo "Los datos ya existen";

- Ve que usé mysql_query() y no mysql_db_query() como tú... no es necesario emplear esta última función pués antes ya hiciste el respectivo mysql_select_db(). Al usar solo mysql_query() separas procesos y en caso de error podrás identificar (si así lo indicas) si fue en la selección de la BD ó en la query...

- ... jejeje, tienes esto:
Código PHP:
$email=$_POST['apellido']; 
¿apellido ó mail??, ¿así es?.. antes ya ocupaste "apellido" .

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 14/12/2005, 04:40
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
La FAQ que te digo (verás por qué sé de su existencia ): http://www.forosdelweb.com/showpost....&postcount=154

y.. otra anotación:

- Cuando pongas código, procura encerrarlo entre las etiquetas correspondiente (tienes los botónes del editor avanzado). En el caso de php sería [ php] tu código [ /php] (sin espacios en las etiquetas)

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 16:44.