PHP множественный массив выбран из базы данных - PullRequest
0 голосов
/ 15 февраля 2019

Здравствуйте, пожалуйста, кто-нибудь может дать идею для этого?
Я хочу, чтобы данные были выбраны, когда они совпадают с их идентификатором, но когда я попробую это сделать, некоторые данные не будут выбраны, просто отобразятся только как я могу сделать их выбранными по их идентификатору?
В этом массиве он работает:

[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++;
  }
}

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Я думаю, что ошибка с этой строкой

$i = 0 ;

После первого цикла $ i уже больше, чем число $ array.так что не выполняется.Переместить его в.

while($row = $stat->fetch()){
    extract($row);
    $i = 0 ;
0 голосов
/ 15 февраля 2019
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>";
  }
...