【问题标题】:How to check if any items in an array (php) is in a table (mysql)如何检查数组(php)中的任何项目是否在表中(mysql)
【发布时间】:2015-03-10 18:21:56
【问题描述】:

我已经制作了一个随机字符生成器,​​但是如何检查数据库中是否已经存在结果?
例如,如果我想要 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>';
        }
    }

}

【问题讨论】:

  • 你在上面的代码中遇到了什么问题??
  • 您可以查看数据库,但如果您的数据太多怎么办?我喜欢建议 Timestamp();的 php 每次都会为您提供唯一的密钥。

标签: php mysql


【解决方案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++){
    // ....

【讨论】:

  • 再次感谢您的帮助!
猜你喜欢
  • 2012-12-21
  • 2021-12-26
  • 2015-12-03
  • 1970-01-01
  • 1970-01-01
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
  • 2017-03-16
相关资源
最近更新 更多