如何检查数组(php)中的任何项是否在表中(mysql)

时间:2015-03-10 09:21:06

标签: php mysql

我制作了一个随机字符生成器,​​但是如何检查数据库中是否已存在结果? 例如,如果我想要5000个结果,并且1个结果等于数据库中的结果,则必须在for循环中创建新结果。

$previous = array();

for ($i=1; $i<=$quantity; $i++){
                       
    $unique_found = false;
    while(!$unique_found){
        $a = substr(str_shuffle("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 4);
        $b = substr(str_shuffle("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 4);
        $c = substr(str_shuffle("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 4);
        $d = substr(str_shuffle("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, 4);

        $code = "$a-$b-$c-$d";

        if(!in_array($code,$previous)){
            $unique_found = true;
            $previous[] = $code;
            echo .$code .'<br>';
        }
    }

}

1 个答案:

答案 0 :(得分:1)

使用数据库中的结果填充$ previous数组。

$previous = array();
$sql = "SELECT `code` FROM `table`";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()){
    $previous[] = $row['code'];
}

for ($i=1; $i<=$aantal; $i++){
    // ....