georgiazerocoolბოლომდე ვერ ვხვდები როგორ გინდა და ამიტომ 2 ვარიანტს დავწერ
ეს აბსოლიტურად რენდომ ციფრებს მოგცემს
<?php
//bazastan kavshiri
$db = mysql_connect ("localhost","test","test");
mysql_select_db("test",$db);
//while loopi iwyeba
while (true){
//vigebt random numberis axal seeds
srand ((double) microtime( )*1000000);
//vigebt 6 nishna rendom numbers
$random_number = rand(100000,999999);
//vigebt sql-is rezultats am cifris mixedvit
$slqresult = mysql_query ("SELECT * FROM test_table t WHERE t.test_column=$random_number");
//tu querym dagvibruna 0 chanaweri mashin gavmovdivart loopidan, tu ara da while grzeldeba
$t_or_f = mysql_num_rows($slqresult);
if ($t_or_f<1){break;}
}
//while loopi mtavrdeba
//esec 6 nishna random numberi romelic ar aris bazashi
echo "$random_number";
?>
ამისი მინუსი ისაა რომ რაც მეტი ჩანაწერი გაჩნდება ბაზაში მით მეტ ხანს იმუშავებს შეიძლება უსასრულოდ ჩაიციკლოს
ეს კიდე იწყებს 100 000 დან გაზრდას და პირველივე ისეთ რიცხვს ამოგიგდებს რომელიც არ გაქვს ბაზაში.
ამისი მინუსი ისაა რომ 1 ით იზრდება ყოველთვის. მაგრამ თუ აქამდე უკვე გქონდა რაიმე რიცხვები ჩაწერილი, არ შეგეშინდეს იმათ გადაახტება.
რაც მეტი იქნება ჩანაწერი მით მეტ ხანს კი იმუშავებს მაგრამ არ ჩაიციკლება უსასრულოდ!
<?php
//bazastan kavshiri
$db = mysql_connect ("localhost","test","test");
mysql_select_db("test",$db);
//vigebt pirvel 6 nishna ricxvs
$random_number=100000;
//while loopi iwyeba
while (true){
//vigebt axal ricxvs romelic 1 it metia winaze
$random_number++;
//vigebt sql-is rezultats am cifris mixedvit
$slqresult = mysql_query ("SELECT * FROM test_table t WHERE t.test_column=$random_number");
//tu querym dagvibruna 0 chanaweri mashin gavmovdivart loopidan, tu ara da while grzeldeba
$t_or_f = mysql_num_rows($slqresult);
if ($t_or_f<1){break;}
//tu ricxvi xdeba 7 cifriani mashin gamovdivart loopidan (darac ginda is uqeni mere

)
if ($random_number>999999){break;}
}
//while loopi mtavrdeba
//esec 6 nishna random numberi romelic ar aris bazashi
echo $random_number;
?>
This post has been edited by levan_super on 11 Jun 2009, 18:02