从数据库中选择PHP多个数组

问题描述 投票:0回答:2

您好,有人可以为此提出想法吗? 我希望数据在与其ID匹配时被选中,但是当我尝试这个时,一些数据将不会被选中仅仅显示我如何通过他们的ID选择它? 在这个数组中它起作用:

[0] => 1 [1] => 2 [2] => 3

在这个数组中,它将无法工作:

[0] => 20 [1] => 21 [2] => 22 [3] => 23 [4] => 24 
$stat = $dbh->prepare("SELECT * FROM department");
$stat2 = $dbh->prepare("SELECT * FROM docprivacy WHERE doc_id = $id ORDER BY dep_id");   

$stat2->execute();

$array = array();

while ($row3 = $stat2->fetch()) {
    extract($row3);
 array_push($array, $row3['dep_id'] )    ; 
}

$stat->execute();
$i = 0 ;

while($row = $stat->fetch()){
    extract($row);
    while ( $i < count($array)) {
        # code...

     if ($row['d_id'] == $array[$i]){
       echo "<option value = '{$d_id}' selected>".$row['department']."</option>";
      }else{
        echo "<option value = '{$d_id}'>".$row['department']."</option>";
    }

    $i++;
  }
}
php arrays database multiple-columns dropdown
2个回答
0
投票
if (in_array($row['d_id'], $array ))
  {
     echo "<option value = '{$row['d_id']}' selected>".$row['department']."</option>";
  }
else
  {
    echo "<option value = '{$row['d_id']}'>".$row['department']."</option>";
  }

0
投票

我认为这个错误与这一行有关

$i = 0 ;

在第一个循环之后,$ i已经超过了$ array计数。所以它不是执行。移动到。

while($row = $stat->fetch()){
    extract($row);
    $i = 0 ;
© www.soinside.com 2019 - 2024. All rights reserved.