elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Sacar un unico dato de un registro en una tabla.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] 4 5 6 Ir Abajo Respuesta Imprimir
Autor Tema: Sacar un unico dato de un registro en una tabla.  (Leído 19,776 veces)
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Sacar un unico dato de un registro en una tabla.
« Respuesta #20 en: 22 Junio 2010, 14:46 pm »

Primeramente, todo este código debería estar en el archivo donde haces el registro. Yo he puesto registrar(); para hacer notar que ahi va el código que usas para registrar al usuario. Y tienes $mail en lugar de $email, uno tiene que cambiarse.


En línea

XXXXXX


Desconectado Desconectado

Mensajes: 1.067



Ver Perfil WWW
Re: Sacar un unico dato de un registro en una tabla.
« Respuesta #21 en: 22 Junio 2010, 21:47 pm »

entonces seria
Código:
<?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 = '$mail' LIMIT 1")){

// Insertar datos despues de verificar
$db_handle = "INSERT INTO `login` (userid, user_pass, sex, email) VALUES ('$usuario','$password','$sexo','$mail')";

mysql_query($db_handle);

}
else{
   echo "Error: el email ya está en uso";
}
 
?>


« Última modificación: 22 Junio 2010, 21:58 pm por tomeu00 » En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Sacar un unico dato de un registro en una tabla.
« Respuesta #22 en: 22 Junio 2010, 22:04 pm »

jajaajjaja XDDD.... Que haces man??? por lo menos probar los codigos antes de postearlo xD.
Aunque no es la forma correcta de hacerlo funcionara ya que devolverá 1 si existe... 0 si no existe...

Código:
1 = True
0 = False

Y pasara el if a ejecutarse...

Ej:
Código
  1. <?php
  2.  
  3.  
  4. $conexion = mysql_connect("localhost", "root", "pasdjsoaj");
  5. mysql_select_db("ej", $conexion);
  6.  
  7. echo mysql_num_rows(mysql_query("SELECT nombre FROM clientes WHERE nombre = 'yoya' LIMIT 1"))
  8.  
  9. ?>
  10.  

Devuelve:

Código:
1

Aunque la forma mas comoda es la que dice "."]:-*[/quote]

Código
  1. mysql> CREATE TABLE clientes( nombre CHAR(20) UNIQUE);
  2. Query OK, 0 ROWS affected (0.20 sec)
  3.  
  4. mysql> INSERT INTO clientes (nombre) VALUES ('yoya');
  5. Query OK, 1 ROW affected (0.14 sec)
  6.  
  7. mysql> INSERT INTO clientes (nombre) VALUES ('yoya');
  8. ERROR 1062 (23000): Duplicate entry 'yoya' FOR KEY 'nombre'
  9.  
  10.  
« Última modificación: 22 Junio 2010, 22:26 pm por ~ Yoya ~ » En línea

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


Desconectado Desconectado

Mensajes: 1.067



Ver Perfil WWW
Re: Sacar un unico dato de un registro en una tabla.
« Respuesta #23 en: 23 Junio 2010, 15:24 pm »

ahora si que ya me e perdido del todo....

Primero mira que no este duplicado, y luego inserta, entonces.... no veo por ningun lado eso en el primer codigo, y en el segundo, eso es php? o que es?

podrias explicarme un poco como funciona el segundo codigo?
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Sacar un unico dato de un registro en una tabla.
« Respuesta #24 en: 23 Junio 2010, 15:36 pm »

Lo que Yoya quiere decir es que en donde haces:

Código
  1. mysql_num_rows(mysql_query("La consulta blablabbla"))

Esto devuelve un valor entero que representa el número de registros que consigues de la consulta. Lo que haciamos era compararlo con 0 (mysql_num_rows(..)  == 0) cosa que a tí se te ha olvidado poner en el último código que pusiste.

Ahora, como tienes un if(mysql_num_rows(..)) lo que hará es evaluar el número como falso o verdadero, donde para php todos los números enteros son verdaderos y el 0 es negativo.

Entonces, si la consulta devuelve que hay un registro con ese email devolvera un número entero diferente de 0 lo cual significa que es positivo. Entonces al evaluar nos queda así.

Código
  1. if(1){
  2. registrar();
  3. else{
  4. echo "Error: emáil ya registrado";
  5. }
  6.  

Lo cual significa que le estás diciendo a php, si existe una persona con ese email dejalo registrarse y si no existe una persona con ese email no lo dejes registrarse y mandale el error.

En pocas palabras, está alrevez. Pon la comparación (el == 0) o cambia el registrar en el else y el echo dentro del if.

Y lo que te ha puesto Yoya después son queries para la creación de una tabla con un campo unique.
En línea

XXXXXX


Desconectado Desconectado

Mensajes: 1.067



Ver Perfil WWW
Re: Sacar un unico dato de un registro en una tabla.
« Respuesta #25 en: 24 Junio 2010, 08:57 am »

ahora supongo que si,

Código:
<?php
$conexion = mysql_connect("localhost", "root", "pasdjsoaj");
mysql_select_db("ej", $conexion);
 
echo mysql_num_rows(mysql_query("SELECT nombre FROM clientes WHERE nombre = 'yoya' LIMIT 1"));

if(1){
registrar(); // Aquí que va? tengo que llenar con algo?
}else{
echo "Error: emáil ya registrado";
}
?>

no lo e probado, porque no se donde tendria que poner el valor para que luego si esta OK enviara, supongo que donde pone registrar() tendria que poner el codigo de registro correcto?
En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Sacar un unico dato de un registro en una tabla.
« Respuesta #26 en: 24 Junio 2010, 17:04 pm »

man, ya lo tienes hecho....
Código
  1. <?php
  2.  
  3. include ('config.php');
  4.  
  5. $usuario=$_POST['usuario'];
  6. $password=$_POST['password'];
  7. $sexo=$_POST['sexo'];
  8. $mail=$_POST['mail'];
  9.  
  10. // Verificar si existe el email
  11.  
  12. if(mysql_num_rows(mysql_query("SELECT email FROM tabla WHERE email = '$mail' LIMIT 1")){
  13.  
  14. // Insertar datos despues de verificar
  15. $db_handle = "INSERT INTO `login` (userid, user_pass, sex, email) VALUES ('$usuario','$password','$sexo','$mail')";
  16.  
  17. mysql_query($db_handle);
  18.  
  19. }
  20. else{
  21.   echo "Error: el email ya está en uso";
  22. }
  23.  
  24. ?>
En línea

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


Desconectado Desconectado

Mensajes: 1.067



Ver Perfil WWW
Re: Sacar un unico dato de un registro en una tabla.
« Respuesta #27 en: 24 Junio 2010, 17:46 pm »

el dreamweaver me dice que tiene 2 errores, en la linea 12 i 20, y en el navegador me dice.

Parse error: syntax error, unexpected '{' in C:\xampp\htdocs\web2\mods\coma\cp\enviareg.php on line 12


falta alguna cosa de "}" estas no?
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Sacar un unico dato de un registro en una tabla.
« Respuesta #28 en: 24 Junio 2010, 18:15 pm »

ahora supongo que si,

Código:
<?php
$conexion = mysql_connect("localhost", "root", "pasdjsoaj");
mysql_select_db("ej", $conexion);
 
echo mysql_num_rows(mysql_query("SELECT nombre FROM clientes WHERE nombre = 'yoya' LIMIT 1"));

if(1){
registrar(); // Aquí que va? tengo que llenar con algo?
}else{
echo "Error: emáil ya registrado";
}
?>

no lo e probado, porque no se donde tendria que poner el valor para que luego si esta OK enviara, supongo que donde pone registrar() tendria que poner el codigo de registro correcto?

A ver, te estás confundiendo. El código era para explicar, no era exactamente código...

Si tu tienes:

Código
  1. <?php
  2.  
  3. if(mysql_num_rows(mysql_query("SELECT * FROM clientes WHERE email = '$email' LIMIT 1"))){
  4. registrar();
  5. ]
  6. else{
  7. echo "Mensaje de error";
  8. }
  9. ?>
  10.  

El código entrará por el IF únicamente si existe una persona con ese email.

Si lo pones de está forma:

Código
  1. <?php
  2. if(mysql_num_rows(mysql_query("SELECT * FROM clientes WHERE email = '$email' LIMIT 1")) == 0){
  3. registrar();
  4. ]
  5. else{
  6. echo "Mensaje de error";
  7. }
  8. ?>
  9.  

Entrará por el IF únicamente si NO existe una persona con ese email.

Tienes que leer mi post para entender porque. Y no solo estár leyendo y copiando código :/, nada más fijate lo que has copiado:

"SELECT nombre FROM clientes WHERE nombre = 'yoya' LIMIT 1" <-- esta consulta que tiene que ver con tu problema actual? Repito, ponte a leer lo que copias y tratar de entender.
En línea

XXXXXX


Desconectado Desconectado

Mensajes: 1.067



Ver Perfil WWW
Re: Sacar un unico dato de un registro en una tabla.
« Respuesta #29 en: 24 Junio 2010, 20:02 pm »

esque los 2 me estais diciendo cosas distintas y me estoy liando de mala manera, ahora ya no se donde va nada  :-X

y no me limito simplemente a copiar y pegar...

el me puso un codigo, tu me pones otro, o os poneis de acuerdo, o me hago una empanada mental.
En línea

Páginas: 1 2 [3] 4 5 6 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Crear link con dato de un registro de una bd « 1 2 3 4 »
PHP
Brian1511 30 8,689 Último mensaje 25 Julio 2013, 19:29 pm
por EFEX
Cómo Seleccionar un dato si existe en otra tabla?
Bases de Datos
WHK 4 5,592 Último mensaje 26 Agosto 2013, 17:56 pm
por 1mpuls0
ayuda con editar un dato en tabla con sqlite
Java
clupin 0 1,316 Último mensaje 27 Julio 2014, 22:02 pm
por clupin
Actualizar un dato de una tabla
PHP
bgnumis 4 2,783 Último mensaje 1 Abril 2015, 20:54 pm
por engel lex
Sacar dato de una select sql en php y html
PHP
jamatbar 1 1,967 Último mensaje 21 Noviembre 2020, 09:06 am
por jamatbar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines