基本的に、データベースに約5000個のランダムな数値を挿入するSQLクエリを作成することにしました$i
(現在はそれを理解するために10個)。
以前はMYSQLだけでそれをやろうとしましたが、失敗し、そこでもう時間を無駄にしたくありません。
10桁の数値をランダム化し、その数値を$codes
、データベース内のさまざまなテーブルからの100,000を超える値を含む配列()と照合します。また、新しい乱数を新しい配列($newNumbers
)に追加して、同じ新しい番号を作成しないようにします。次に、その番号をINSERTクエリに追加します。また、2番目の番号を作成するためのネストされたwhile
ループもあります。これも完全に一意である必要があります。
それが理にかなっていることを願っています..とにかく、問題はネストされたループ内にあるようですが、それは無限ループのようです(そして増加しないようです$i
)が、理由を理解することはできません。
$query = "INSERT INTO 'table' ('num_id', `num1`, `num2`) VALUES";
$i = 0;
while ($i <= 10){
$rand = mt_rand(1000000000, 9999999999);
if (!in_array($rand, $codes) && !in_array($rand2, $newNumbers) ){
$newNumbers[] = $rand;
$second = 0;
while ($second == 0){
$rand2 = mt_rand(1000000000, 9999999999);
if (!in_array($rand2, $codes) && !in_array($rand2, $newNumbers) ){
$query .= " ('', $rand, $rand2)";
$newNumbers[] = $rand2;
$second = 1;
$i++;
}else
$duplicates ++;
}//end second loop
}else
$duplicates ++;
}//while