Вы, вероятно, хотите отсортировать свой первый запрос по sDate с ORDER BY sDate
.
Во втором запросе вы снова выбираете из movieScreenings , что не является необходимымпотому что я представляю, что все данные, к которым вы обращаетесь ( постер, заголовок, описание ), хранятся в movieList .
В-третьих, в вашем последнем цикле while вы повторяете<select>
тег для каждого времени проверки. Это приведет к множеству выпадающих входов. Кроме того, вы включаете закрывающий тег </div>
в этот цикл. Так что зацикливайте только тег <option>
.
С этими изменениями ваш код будет выглядеть так:
$sql_date = "SELECT DISTINCT sDate, sTitle FROM movieScreenings ORDER BY sDate ASC";
$result_date = mysqli_query($db, $sql_date);
while($row = mysqli_fetch_array($result_date)) {
echo "<h2>" . $row['sDate'] . "</h2>";
$sql_movie = "SELECT * FROM movieList WHERE title = '" . $row['sTitle'] . "'";
$result_movie = mysqli_query($db, $sql_movie);
while($row2 = mysqli_fetch_array($result_movie)) {
echo "<div class='box'>
<img class='poster' src='posters/" . $row2['poster'] . "'/>
<h2>" . $row2['title'] . "</h2>
<p>" . $row2['description'] . "</p>";
$sql_time = "SELECT DISTINCT sTime FROM movieScreenings WHERE sTitle = '" . $row2['title'] . "' AND sDate = '" . $row['sDate'] . "'";
$result_time = mysqli_query($db, $sql_time);
echo "<select name='sTime'>";
while($row3 = mysqli_fetch_array($result_time)) {
echo "<option value='" . $row3['sTime'] . "'>" . $row3['sTime'] . "</option>";
}
echo "</select>";
echo "</div>";
}
}
...
И, наконец, я бы предложил использовать идентификаторы в качестве внешних ключей для предотвращения дублирования вбудущее. Может быть несколько фильмов с одинаковым названием.