【发布时间】:2018-12-07 10:15:53
【问题描述】:
我有点想不通。
我希望我的代码:
- 创建一个随机数
- 测试它是否存在于数据库中
- 如果存在,请再次创建一个新的随机数 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 个步骤的代码?
希望你能帮我解决这个问题!
【问题讨论】:
-
“问题是,它给了我多个数字” - 这不正是您在预期设计的第 3 步中想要做的吗?究竟是什么问题?
-
问题是,我想得到一个在数据库中不存在的数字,然后创建该数字。当我得到更多数字时,我无法确定哪些不存在,哪些存在。
-
@RasmusKjeldsen:所以你只想打印在数据库中找不到的数字?然后将
echo语句移动到else块中? -
@IsThisJavascript 当我将 $unique_number_new 移到外面而我得到很多行时,我能以某种方式阻止这种情况吗? (见dance4fun.dk/test_folder/number_test.php)
-
@David 完全正确。如果它存在,我希望代码测试一个新数字。有意义吗?
标签: php mysql loops while-loop do-while