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.

MinusFour

Me tienes completamente perdido tomeu00, mira, lo único que necesitas es un solo if.

Hagamos los dos ejemplos de una vez para que entiendas...

Está es una manera.

Código (php) [Seleccionar]

<?php

if(mysql_num_rows(mysql_query("SELECT * FROM tabla_de_registros WHERE email = '$email'")) == 0){
 
//hacer el insert a la tabla
mysql_query("INSERT INTO tabla_de_registros VALUES('etc', 'etc', 'etc')");
}
else{
 echo 
"Hay una persona ya con este email";
}



Está es la otra manera:

Código (php) [Seleccionar]

<?php

if(mysql_num_rows(mysql_query("SELECT * FROM tabla_de_registros WHERE email = '$email'"))){
 echo 
"Hay una persona ya con este email";
}
else{
  
//hacer el insert a la tabla
mysql_query("INSERT INTO tabla_de_registros VALUES('etc', 'etc', 'etc')");
 
}


~ Yoya ~

porque mejor no se lo maquetean y que se ponga a debugear xD, porque seguiremos en la misma xD... Si no se da cuenta que lo resuelve y luego hace otra cosa ???
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

vale vale!! ahora si lo pillo creo que me e liado tanto yo, que te e liado a ti, bien, según e entendido...



en el primero, entra por el if, busca las tablas y comprueba que no este repetido el user o mail, si es así, == 0 false, pasa a insertar, si no ELSE, suelta el mensaje de error.


en segundo es mas o menos igual solo que por lo que veo, va sin el == 0.

entra por el IF, hace la selección, seguidamente si ya existe manda el mensaje, si no osea ( else ) ya hace el insert.

esta correcto?

bizco

num rows = siemrpe es mayor de 0 si ya existe el dato en la tabla.

con esto claro, siempre que sea mayor de 0 tienes q mostrar el mensaje de que el usuario ya existe, y solo te queda una direccion que es el caso contrario, insertar el usuario.

if (condicion)
{

}
else
{

}

solo hay un camino, bueno o malo.

~ Yoya ~

Aver, creo que este si lo entiende...



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


$valor 
mysql_num_rows(mysql_query("SELECT * FROM tabla_de_registros WHERE email = '$email'"));
/* 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 "Hay una persona ya con este email";

}
//Fin del if y entra el else
else{//En caso que el if falle se ejecuta el else


mysql_query("INSERT INTO tabla_de_registros VALUES('etc', 'etc', 'etc')");
//Hacemos la consulta insertando los datos...
}//Fin del else


?>

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

#45
sorry, posteo yoya y me pillo de improvisto xD

re edito en un rato.


re editado:

bien yoya, lo veo bien , unas notas que quiero remarcar.

el dreamweaver me tira 2 errores, no se si sera normal.

y no termino de comprender la función que tiene $valor, o como se expresaría.

gracias por vuestra ayuda chicos ^_^ después de esto, seguiré experimentando localmente, para probar de hacer cosas nuevas.

~ Yoya ~

eso es porque me falto cerras el parentesis del if xD.
Código (php) [Seleccionar]

if(!empty($valor)){//Si la variable $valor contiene algun valor se ejecuta el if

$valor solo es una variable, le puse ese nombre para que entiendas un poco mejor pero no te vayas a liar 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

entonces ese $valor, no tiene que llamar a nada no?

bien, entonces el codigo me quedaria así.

PD: valor tendria que ser db_handle, que es lo que hace conexion?

Citar
<?PHP
$user_name 
"root";
$password "mipasword";
$database "mitabla";
$server "localhost";
$db_handle mysql_connect($server$user_name$password);
$db_found mysql_select_db($database$db_handle);
?>
<?php
 
$usuario
=$_POST['usuario'];
$password=$_POST['password'];
$sexo=$_POST['sexo'];
$mail=$_POST['mail'];
 

$valor mysql_num_rows(mysql_query("SELECT * FROM tabla_de_registros WHERE 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 "Hay una persona ya con este email";
 
}
//Fin del if y entra el else
else{//En caso que el if falle se ejecuta el else
 
 
mysql_query("INSERT INTO tabla_de_registros VALUES('etc', 'etc', 'etc')");
//Hacemos la consulta insertando los datos...
}//Fin del else

// code
?>

bizco

#48
vuelvo a opinar, tendrias que leer algo basico y mas que nada comprender que hace el codigo que escribes. mas que nada pq esto solo para hacer el insert, a la hora de validar mediante cookies, sesiones o en el propio formulario de login vas a estar mas perdido aun. solo es un consejo, pero si no sabes diferenciar cuando el retorno es 0 o mayor para verificar un mail, menos entenderas si el usuario tiene las cookies, si el valor de estas es el correcto y otros muchos casos que no entenderas si no lees algo.

CitarPD: valor tendria que ser db_handle, que es lo que hace conexion?

valor tiene el resultado de mysql_num_rows:

printf("%d",$valor);

prueba con un mail q no exista y otro que si, veras la diferencia.

http://www.php.net/manual/es/function.mysql-num-rows.php

~ Yoya ~

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.