Ben gereken bir şey olduğu gibi sadece bu great tutorial bulduk.
Ancak, göz yaptıktan sonra, bu verimsiz olabilir gibi görünüyor. Çalışır yolu önce onu gerçekten benzersiz olduğundan emin olmak için veritabanında varsa daha sonra kontrol benzersiz bir anahtar oluşturmak olduğunu. Ancak, büyük veritabanı hakkı, işlevi alır yavaş olur?
Bunun yerine, bu işlev için sipariş eklemek için bir yol var, düşünüyordum? Yani yapılması gereken tüm DB önceki girişi kontrol ve anahtarı artırmak olduğunu. Bu yüzden her zaman benzersiz olacak?
function generate_chars()
{
$num_chars = 4; //max length of random chars
$i = 0;
$my_keys = "123456789abcdefghijklmnopqrstuvwxyz"; //keys to be chosen from
$keys_length = strlen($my_keys);
$url = "";
while($i<$num_chars)
{
$rand_num = mt_rand(1, $keys_length-1);
$url .= $my_keys[$rand_num];
$i++;
}
return $url;
}
function isUnique($chars)
{
//check the uniqueness of the chars
global $link;
$q = "SELECT * FROM `urls` WHERE `unique_chars`='".$chars."'";
$r = mysql_query($q, $link);
//echo mysql_num_rows($r); die();
if( mysql_num_rows($r)>0 ):
return false;
else:
return true;
endif;
}