Select multiple

Ci-aprs le code :
<?php

$query = "SELECT ownerID,ownername,ownerbureau, is_deleted FROM notes.owner WHERE is_deleted = 0 AND ownername IS NOT NULL  ORDER BY     ownername,ownerbureau";
     //  Prpare une requte  l'excution et retourne un objet
    $stmt = $pdo->prepare($query);
    // Excute une requte prpare
    $stmt->execute();

    $previousGroup ="";
    $first_group   = true;

    ?>
    <select id="IDowner" name="IDowner[]" class="mdb-select colorful-select dropdown-primary md-form" multiple="multiple" searchable="Rechercher .." required="required" tabindex="2">
<?php while($b = $stmt->fetch(PDO::FETCH_ASSOC)){
        if ($b['ownername'] != $previousGroup){
            if(!$first_group){
                echo '</optgroup>';
            }else{
                $first_group = false;
            }
            echo '<optgroup label ="'.$b['ownername'].'">';
            $previousGroup = $b['ownername'];
        }
    ?>
        <option value="<?php echo $b['ownerID'] ?>"
            <?php
            $array =  explode(',',$IDowner_note);
            foreach ($array as $item) {
                if (!(strcmp($b['ownerID'],$item))) {echo 'selected';}} ?>><?php echo $b['ownerbureau'] ?></option>
        <?php
      $sel_owner="";
    }
    echo '</optgroup>';
    ?>

</select>

Je rcupre les bonnes valeurs, mais l'affichage est incorrect. Le problme se situe certainement au niveau de ces lignes

if ($b['ownername'] != $previousGroup){
    if(!$first_group){
        echo '</optgroup>';
    }else{
        $first_group = false;
    }
        echo '<optgroup label ="'.$b['ownername'].'">';
        $previousGroup = $b['ownername'];
                                                    }

mais je ne vois pas le problme. Merci