如果表循环查询中存在值,直到它不存在

时间:2014-02-17 15:27:14

标签: php mysql while-loop

我需要创建一个while循环来检查$ key是否在数据库中,如果它是一个新密钥并再次检查。它似乎是代码的一个简单部分,但我无法让它工作。

我一直在谷歌搜索并尝试不同的解决方案几个小时但没有运气。

$key = 'aa';//RandomString(30);
$result = mysql_query("SELECT column FROM table WHERE column = '$key'");

$j = 1;
while(mysql_num_rows($result)==1){
    $key = 'aa'.$j;//RandomString(30);
    $j++;
}

1 个答案:

答案 0 :(得分:4)

您需要在mysql_query();循环中包含while。您目前正在这样做的方式是每次只查询一次mysql数据库时检查相同的结果。

$key = 'aa';//RandomString(30);

$j = 1;
$found = true;
while($found == true){
    $result = mysql_query("SELECT column FROM table WHERE column = '$key'");
    if(mysql_num_rows($result)==0) {
        $found = false;
    } else {
        $key = 'aa'.$j;//RandomString(30);
        $j++;
    }
}

Fyi,mysql_函数已弃用,因此您应尝试迁移到mysqli或pdo。

如果在这种情况下你有很多以aa开头的条目,这也会变得效率低下。最好找到以aa开头的所有条目,然后找到最后一个并将数字加1。这样你可以用一个查询而不是数百或数千个查询。