Sacar un unico dato de un registro en una tabla.

Iniciado por XXXXXX, 20 Junio 2010, 17:00 PM

0 Miembros y 1 Visitante están viendo este tema.

Falso Positivo

Cita de: tomeu00 en 21 Junio 2010, 04:53 AM
por cierto, como podria añadirle a este codigo, otro codigo para evitar que me duplicara usuarios y emails?
Debes consultar si el email existe, en base a eso insertar o no el nuevo usuario.

Código (php) [Seleccionar]

<?php 

include ('config.php');

$usuario=$_POST['usuario'];
$password=$_POST['password'];
$sexo=$_POST['sexo'];
$mail=$_POST['mail'];

// Verificar si existe el email

$q1mysql_query("SELECT email FROM login WHERE email ='$mail' ");
$num_rows mysql_num_rows($q1);

if( 
$num_rows >){

    
$db_handle "INSERT INTO login (userid, user_pass, sex, email) VALUES     ('$usuario','$password','$sexo','$mail')";
    
mysql_query($db_handle);

     } else {

         
Header("Location: registrarseok.php"); 

       }

?>





Don't worry, be hacked....

XXXXXX

#11
hay algo que no entiendo..

ese $q1 a donde se refiere? eso son los datos de conexion?

porque lo que asigna la conexion es $db_handle que seria lo mismo a
$db_handle = mysql_connect($server, $user_name, $password);
y
$db_found = mysql_select_db($database, $db_handle);

esto crea la conexion.

envez de ser $q1 no tendria que ser db_found?

PD:; añado que aunque se duplique el mail, sigue ingresando los datos

~ Yoya ~

man, eso es solo una conexión mysql y luego selecciona una base de datos...
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

[u]nsigned

Cita de: tomeu00 en 21 Junio 2010, 04:53 AM
por cierto, como podria añadirle a este codigo, otro codigo para evitar que me duplicara usuarios y emails?

Al margen de la logica que uses en el script PHP, yo te recomendaria tambien que edites la estructura de tu tabla, poniendo los campos userid y email como UNIQUE (unico) y asi sera elpropio MySQL el que no permitira registros repetidos, devolviendo el numero de error 1062, elcualpodes averiguar desde php con mysql_errno()

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

XXXXXX

no me ables de cosas tan complicadas jajaja que justo estoy entrando en php

expresate de forma que lo pueda entender un noob.

gracias por toda vuestra paciencia y dedicacion al intentar ayudarme  :D

~ Yoya ~

la forma que dice @ "."]:-*[/quote]  es la mas apropiada xD...
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

XXXXXX

sigo sin comprender su explicacion...

la database no la puedo tocar, si la toco peta todo el otro sistema, por eso tengo que hacerlo mediante codigo, o javascript o alguna cosa, que me permita evitar duplicados

MinusFour

Las dos soluciones que te presentan son estás: hacer unique el campo de email o revisar que exista el email antes de registrarlo. Si no quieres mover nada a la BD, lo que te recomiendo entonces es que revises si hay algún registro con ese email, lo cual lo haces con mysql_num_rows...

Código (php) [Seleccionar]
<?PHP

if(mysql_num_rows(mysql_query("SELECT * FROM tabla WHERE email = '$email'")) == 0){
registrar();
}
else{
echo "Error: el email ya está en uso";
}
?>

[u]nsigned

No pretendo iniciar discusiones estúpidas ni nada por el estilo, pero me parece bueno ir metiendoles la idea de eficiencia a los novatos. Y me pare muy poco eficiente realizar una consulta solo para saber si ya existe el mail, y en caso contrario realizar otra rutina para insertar los registros. Ademas si tenes phpMyAdmin establecer un campo como UNIQUE es cuestion de dos clicks  ;D


Código (php) [Seleccionar]
<?php
 
if(mysql_num_rows(mysql_query("SELECT email FROM tabla WHERE email = '$email' LIMIT 1")){
   
registrar();
}
else{
   echo 
"Error: el email ya está en uso";
}
?>


Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

XXXXXX

ya ya, si no te digo que no, pero lo uso unido a otro sistema, por eso no puedo permitirme hacer eso, aun así tu idea esta muy bien.


sobre el codigo

<?php
 
if(mysql_num_rows(mysql_query("SELECT email FROM tabla WHERE email = '$email' LIMIT 1")){
   
registrar();
}
else{
   echo 
"Error: el email ya está en uso";
}
?>



quedaria algo asi?

<?php 
 
include ('config.php');
 
$usuario=$_POST['usuario'];
$password=$_POST['password'];
$sexo=$_POST['sexo'];
$mail=$_POST['mail'];
 
// Verificar si existe el email

if(mysql_num_rows(mysql_query("SELECT email FROM tabla WHERE email = '$email' LIMIT 1")){
   
registrar();
}
else{
   echo 
"Error: el email ya está en uso";
}
 
?>



ese registrar() es donde ingreso el php con los datos de ingreso? ej envia.php