我有一个我就是搞不懂的急冲。
我希望我的代码:
创建随机数
测试它是否存在于数据库中
如果存在,创建一个新的随机数og do number 2。再一次。
如果它不存在,在数据库中创建它。
我尝试了以下代码,在stackoverflow上发现了类似的问题,但我就是搞不明白:
$key = true;
while($key){
$unique_number_new = rand(1000,9999);
$result = mysql_query("SELECT * FROM brugere WHERE medlemsnummer = $unique_number_new");
if(mysql_num_rows($result) > 0) {
$key = false;
// Allready exists
} else {
$key = true;
// Create in database
}
echo "Code done! - " . $unique_number_new;
}
问题是,它给了我多个数字(参见https://www.dance4fun.dk/test_folder/number_test.php)
如何创建执行上述4个步骤的代码?
希望你能帮我解决这个问题!
1条答案
按热度按时间ahy6op9u1#
代码不起作用的原因:
您将'true'设置为notfound结果,因此如果它没有找到任何内容,它将继续循环。
不管发生什么,回声都会显示代码。
这是实现您列出的目标的一种方法:
这将始终运行代码一次(do),如果在数据库中找到随机数,则将重复执行。一旦在数据库中找不到它,那么在while循环完成后,您就可以在变量中使用一个随机数作为您的突发奇想。
对于这些问题,最好添加一个故障保护: