Autor
|
Tema: Problema con codigo php ( consulta y ejecucion ) (Leído 3,614 veces)
|
XXXXXX
|
Antes que nada explicare la función del codigo. Esto funciona a través de un formulario, la cosa es que tiene que comprobar que no existan otros "duplicados" del mail y el usuario, y bien, me e encallado, ya que e probado mil formas y no funciona, o directamente me tira siempre para el if, exista o no duplicado o no me funciona, o se salta la comprobación. La cosa es que tiene que comprobar que no existan duplicados, y luego pasar a insertar ( esa parte si funciona ) $valor = "SELECT * FROM `login` WHERE ('userid='$usuario', email='$mail')"; /* Si existe algun correo, el valor de la variable $valor sera 1, Si no existe algun correo, el valor de la variable $valor sera 0 */ if(!empty($valor)){//Si la variable $valor contiene algun valor se ejecuta el if //Recordando que 0 es un valor nulo o mejor dicho nada y como 0 no es nada //no se ejecuta el if.... echo "el usuario <b><font color='red' >''" . $usuario . "''</font></b>"; echo " o el Email <b><font color='red' >''" . $mail . "''</font></b> ya estan en uso"; echo "Intenta con otro nombre o email, para regresar click aquí";
}//Fin del if y entra el else else{//En caso que el if falle se ejecuta el else mysql_query("INSERT INTO `login` (userid, user_pass, sex, email) VALUES ('$usuario','$password','$sexo','$mail')"); echo " tu cuenta a sido registrada satisfactoriamente, ahora puedes loguearte <b><font color='red' >" . $usuario . "</font></b> haciendo click aqui"; //Hacemos la consulta insertando los datos... }//Fin del else
saludos y gracias por adelantado
|
|
|
En línea
|
|
|
|
Nakp
casi es
Ex-Staff
Desconectado
Mensajes: 6.336
he vuelto :)
|
ese es el codigo completo? alguna vez realizas la consulta? lo que te devuelve esa query no era un resultset? pueden ser 2 filas el id y correo existen pero son de distinto usuario...
|
|
|
En línea
|
Ojo por ojo, y el mundo acabará ciego.
|
|
|
XXXXXX
|
Antes tenia este codigo... $valor = mysql_num_rows(mysql_query("SELECT * FROM `login` WHERE userid = '$usuario'"));
pero solo me sirve para uno, y yo tengo que hacer 2 comprovaciones
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
porque simplemente no le agregas al campo mail y usuario valores unique
|
|
|
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
|
Como? explícate mejor por favor.
|
|
|
En línea
|
|
|
|
MinusFour
|
Solo una observacion.... Lo que estas haciendo aqui: $valor = "SELECT * FROM `login` WHERE ('userid='$usuario', email='$mail')";
Esto ni siquiera es una consulta, esto es meramente un string. (No se ejecuta nada) Por lo tanto.... emtpy($valor) //Devuelve false;
|
|
|
En línea
|
|
|
|
Shell Root
|
Como? explícate mejor por favor. :http://www.ignside.net/man/mysql/indices.php
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
XXXXXX
|
Pero diganme..
$valor = mysql_num_rows(mysql_query("SELECT * FROM `login` WHERE userid = '$usuario'"));
este no sirve? ( me funciona para 1 )
pero si tendria que poner para que comprobara 2 cosas, como me lo montaria?
lo del otro ya vi que no lleva a ningun lado.
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
Tienes que poner el campo mail y usuario como uniques, como te eh dicho... mysql> DESCRIBE nombres; +--------+-------------+------+-----+---------+----------------+ | FIELD | TYPE | NULL | KEY | DEFAULT | Extra | +--------+-------------+------+-----+---------+----------------+ | id | SMALLINT(6) | NO | PRI | NULL | AUTO_INCREMENT | | nombre | CHAR(15) | NO | UNI | NULL | | +--------+-------------+------+-----+---------+----------------+ 2 ROWS IN SET (0.00 sec) mysql> INSERT INTO nombres (nombre) VALUES ('Jose'), ('Lukas'),('jose'); ERROR 1062 (23000): Duplicate entry 'Jose' FOR KEY 'nombre'
Asi evito que existan nombres iguales en el campo....
|
|
|
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.
|
|
|
Shell Root
|
Claro que también lo podrías hacer desde PHP. Así: #Connecting to the database #Select Database if (!$db_selected) { die ('Can\'t use <b>db_PoC</b> : ' . mysql_error()); } function fSelectRecord($sQuery){ # Function select Record global $conexion; return false; }else{ $sReturn[] = $sRow; } } return $sReturn[0]; } function fValidateRecord($sString, $sField){ # Function to validate the existence of a record global $conexion; $sReturnQuery = fSelectRecord("SELECT ".$sField." FROM tbl_usuarios WHERE ".$sField." = '".$sString."';", conexion); if($sReturnQuery[$sField] == $sString){ return 'Yes'; }else{ return 'Not'; } } echo fValidateRecord('alex1', 'nombre')."<br>"; echo fValidateRecord('alex5', 'nombre')."<br>"; echo fValidateRecord('alex2@hotmail.cl', 'email')."<br>"; echo fValidateRecord('alex5@hotmail.cl', 'email')."<br>";
Resultado:Yes Not Yes Not
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Consulta ejecucion
Software
|
salondono
|
0
|
1,418
|
5 Abril 2011, 01:12 am
por salondono
|
|
|
Adobe no solucionará un problema de ejecución de código en Photoshop Elements 8
Noticias
|
wolfbcn
|
0
|
1,307
|
5 Octubre 2011, 13:15 pm
por wolfbcn
|
|
|
iTunes soluciona, sin mencionarlo, un problema de ejecución de código
Noticias
|
wolfbcn
|
0
|
1,246
|
24 Junio 2012, 23:22 pm
por wolfbcn
|
|
|
(Consulta) Ejercicio de Listas en C - Error de Ejecucion
Programación C/C++
|
palacio29
|
0
|
1,756
|
15 Octubre 2016, 18:12 pm
por palacio29
|
|
|
Ejecución parcial de segunda consulta
.NET (C#, VB.NET, ASP)
|
dbadila
|
0
|
1,789
|
3 Septiembre 2020, 05:17 am
por dbadila
|
|