Заполнение поля выбора из базы данных

Я пытаюсь заполнить поле select с помощью PHP. Проблема в том, что я не могу понять, как отображать их, потому что я получаю одно значение, которое соответствует значению в базе данных, которое отображается дважды, потому что я повторяю его как выбранный, а затем зацикливаю все результаты. Как я могу отобразить только тот, который соответствует значению полей, а затем все те, которые не соответствуют выбранному?

ТАБЛИЧНЫЕ КАТЕГОРИИ

 cat_id cat_name 1 soccer 2 baseball 3 basketball 

ТАБЛИЧНЫЕ СТАТЬИ

 art_id art_cat_id 1 1 

PHP / HTML

 <select name="category"> <?php $sql = "SELECT cat_id cat_name, art_id, art_cat_id FROM categories LEFT JOIN articles ON categories.cat_id = articles.art_cat_id WHERE art_id = 1"; $result = query($sql); if($result===false) { echo("Query Fail"); } else { ?> <option value="<?php echo $data['art_cat_id'] ?>" selected="selected"><?php echo $data['cat_name'] ?></option> <?php while( $data = mysqli_fetch_array($result)) { ?> <option value="<?php echo $data['cat_id'] ?>"><?php echo $data['cat_name'] ?></option> <?php } } ?> </select> 

Что он возвращает

 <select name="category"> <option value="1" selected="selected">soccer</option> <option value="1">soccer</option> <option value="2">baseball</option> <option value="3">basketball</option> </select> 

Что я ищу

 <select name="category"> <option value="1" selected="selected">soccer</option> <option value="2">baseball</option> <option value="3">basketball</option> </select> 

Пропустите строку, если значение соответствует первому.

Фрагмент:

  ?> <option value="<?php echo $data['art_cat_id'] ?>" selected="selected"><?php echo $data['cat_name'] ?></option> <?php while( $data = mysqli_fetch_array($result)) { if ($data['art_cat_id'] == $data['cat_id']) continue; ?> <option value="<?php echo $data['cat_id'] ?>"><?php echo $data['cat_name'] ?></option> <?php }