Jump to content
Sign in to follow this  
Byter

Duvida em while com BD

Recommended Posts

Byter

Olá PAP.

tenho aqui uma questão no meu código e não sei se está completamente certo.

o meu objectivo é criar caracteres random com a função rand() e inseri-los na bd.

fiz um while para que quando o md5 do random fosse igual, ele criasse outro random diferente.

estará certo?


$securitymd5 = md5(rand());
$numcom29 = mysql_query ( "SELECT count(*) from utilizadores WHERE securitymd5='". $securitymd5 . "'" );
list ( $numcom9 ) = mysql_fetch_row ( $numcom29 );
// se o random da base de dados for igual ao criado pelo php
if($numcom9 == "1") {
  $numcom293 = mysql_query ( "SELECT * from utilizadores WHERE securitymd5='". $securitymd5 . "'" );
  $numcom9 = mysql_fetch_array ( $numcom293 );
while($numcom9["securitymd5"]==$securitymd5) {
$securitymd5 = md5(rand());
//actualiza
mysql_query("UPDATE utilizadores SET securitymd5='".$securitymd5."' WHERE user='".$linhauser["user"]."'");

}
}

obrigado.

Share this post


Link to post
Share on other sites
HappyHippyHippo

// ciclo de criação de securitymd5
do {
  $securitymd5 = md5(rand()); // criar o securitymd5 no "flavor" que mais gostares
  $recordset = mysql_query ( "SELECT * from utilizadores WHERE securitymd5='$securitymd5'" ); // perguntar pelos utilizadores com o securitymd5 igual ao criado
while (mysql_num_rows($recordset) != 0); // continuar ciclo se existir alguem com o securitymd5 igual
mysql_query("UPDATE utilizadores SET securitymd5='$securitymd5' WHERE user='{$linhauser["user"]}'"); // actualizar utilizador

este código tem uma pequena falha :

- em algumas plataformas o rand so cria números de 0 a 32767 http://php.net/manual/en/function.rand.php, devendo ser usado os parâmetros min e max da função


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.