Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使每部电影在各自的日期下出现_Php_Html_Mysql_Sql_Phpmyadmin - Fatal编程技术网

Php 如何使每部电影在各自的日期下出现

Php 如何使每部电影在各自的日期下出现,php,html,mysql,sql,phpmyadmin,Php,Html,Mysql,Sql,Phpmyadmin,我似乎无法使每部电影都显示在各自的日期下,并为电影时间选择提供正确的时间下拉菜单 $sql_date = "SELECT DISTINCT sDate, sTitle FROM movieScreenings "; $result_date = mysqli_query($db, $sql_date); while($row = mysqli_fetch_array($result_date)) { echo "<h2>" . $row['sDate'] . "</

我似乎无法使每部电影都显示在各自的日期下,并为电影时间选择提供正确的时间下拉菜单

$sql_date = "SELECT DISTINCT sDate, sTitle FROM movieScreenings ";
$result_date = mysqli_query($db, $sql_date);

while($row = mysqli_fetch_array($result_date)) {

    echo "<h2>" . $row['sDate'] . "</h2>";

    $sql_movie = "SELECT * FROM movieList, movieScreenings 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);

        while($row3 = mysqli_fetch_array($result_time)) {

            echo "<select name='sTime'>

                  <option value='" . $row3['sTime'] . "'>" . $row3['sTime'] . "</option>

                   </select>";

            echo "</div>";

        }

    }

}

mysqli_free_result($result_date);
mysqli_free_result($result_movie);
mysqli_free_result($result_time);
// Close connection
mysqli_close($db);
$sql\u date=“选择不同的sDate,从电影剪辑中缝合”;
$result\u date=mysqli\u查询($db,$sql\u date);
while($row=mysqli\u fetch\u数组($result\u date)){
回显“$row['sDate]”;
$sql_movie=“从movieList中选择*,movieScreenings,其中title=”。$row['sTitle']。”;
$result\u movie=mysqli\u query($db,$sql\u movie);
while($row2=mysqli\u fetch\u数组($result\u movie)){
回声“
“$row2['title']”
“$row2['description']。”

”; $sql_time=“从电影屏幕中选择不同的时间,其中sTitle=””$row2['title']”和sDate=“$row['sDate']””; $result\u time=mysqli\u查询($db,$sql\u time); while($row3=mysqli\u fetch\u数组($result\u time)){ 回声“ “$row3['sTime']” "; 回声“; } } } mysqli_free_result($result_date); mysqli_free_result($result_movie); mysqli_free_result($result_time); //密切联系 mysqli_close($db);
您可能希望使用
ORDER by sDate
按sDate对第一个查询进行排序

在第二个查询中,您再次从movieScreenings中进行选择,这是不必要的,因为我认为您访问的所有数据(海报、标题、描述)都存储在movieList中

第三,在最后一个while循环中,每次筛选时都重复
标记。这将导致多个下拉输入。此外,您还在该循环中包含结束标记
。所以只循环
标记

通过这些更改,您的代码将如下所示:

$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>";
    }
}

...
$sql\u date=“按sDate ASC从电影筛选订单中选择不同的sDate、缝合”;
$result\u date=mysqli\u查询($db,$sql\u date);
while($row=mysqli\u fetch\u数组($result\u date)){
回显“$row['sDate]”;
$sql_movie=“从电影列表中选择*,其中标题=””$row['sTitle']。”;
$result\u movie=mysqli\u query($db,$sql\u movie);
while($row2=mysqli\u fetch\u数组($result\u movie)){
回声“
“$row2['title']”
“$row2['description']。”

”; $sql_time=“从电影屏幕中选择不同的时间,其中sTitle=””$row2['title']”和sDate=“$row['sDate']””; $result\u time=mysqli\u查询($db,$sql\u time); 回声“; while($row3=mysqli\u fetch\u数组($result\u time)){ 回显“$row3['sTime']”; } 回声“; 回声“; } } ...

最后,我建议使用ID作为外键,以防止将来重复。可能有多部同名电影。

您的代码易受SQL注入攻击。你应该使用事先准备好的声明。嗨,开尔文,恐怕我们需要更多关于你正在使用的数据和你试图实现的目标的信息。。。