Вам не нужно делать 2 соединения с БД для получения одинаковых данных.Вы можете создать коллекцию объектов и использовать их на месте, например ...
<?php
$arr = [];
$sql = "SELECT category.name as cat, article.name as art from category
JOIN article ON category.id = article.id";
$query = mysqli_query($conn, $sql);
while($row = mysqli_fetch_array($query)){
$obj = (object) [
"cat" => $row["cat"],
"art" => $row["art"]
];
array_push($arr, $obj);
}
mysqli_close($conn);
?>
<select name="category">
<option value="category">category name</option>
foreach($arr as $obj) {
?>
<option value='"<?php echo $obj->cat; ?>"'><?php echo $obj->cat; ?></option>
<?php
}
<select name="article">
<option value="articlename">article name</option>
foreach($arr as $obj) {
?>
<option value='"<?php echo $obj->art; ?>"'><?php echo $obj->art; ?></option>
<?php
}