数组遍历期间的假阴性

时间:2017-05-15 11:59:12

标签: php mysql

我有一个查询从名称中获取ID号:

Index                 Vel  Dir
2016-07-12 18:00:00   8.0  55
2016-07-12 21:00:00   16.0 67
2016-07-13 00:00:00   NAN  NAN
2016-07-13 03:00:00   19.0 83
...        ...
...        ...
2017-02-28 21:00:00   NAN  NAN

但这些名字是通过电子表格发送给我的,所以我需要根据数据库中实际的内容来检查它们。

我导入名称:

$stmt1 = $db->prepare("
SELECT P_ID 
  FROM personal  
 WHERE personal.FirstName=:firstname 
   AND personal.LastName=:lastname 
");

我这样检查:

$firstnames = file("firstnames.txt");
$lastnames = file("lastnames.txt");

如果姓氏不正确,则会标记相应的FIRST名称。 同样,如果第一个名称不正确,则相应的LAST名称也会被标记。

此处的示例输入数据:

// Identify incorrect last names
    if ($stmt1->rowCount() > 0) {
            $check = $stmt1->fetch(PDO::FETCH_ASSOC);
            $row = $check['lastname'];
            // Nothing to do if last name already exists
          } 
      else {
    echo "The name ".$lastnames[$i]." is not in the DB.";
       }


// Identify incorrect first names
    if ($stmt1->rowCount() > 0) {
            $check = $stmt1->fetch(PDO::FETCH_ASSOC);
            $row = $check['firstname'];
            // Nothing to do if first name already exists
        } 
      else 
       {
    echo "The name ".$firstnames[$i]." is not in the DB.";
       }

让我们说实际上" Azanar"在DB中。我收到消息说“阿斯纳尔不在DB' '保罗不在DB'。鉴于" Paul"实际上是正确的,所以不应该被标记。

1 个答案:

答案 0 :(得分:0)

您应该更改准备好的陈述。您正在查询第一个和最后一个名称与您提供的名称匹配的记录。我认为最简单的是有两个查询,第一个检查名字,第二个检查姓氏。