-1

我发现了几个已解决的问题,它们涉及相同类型的错误,但并没有真正解决我的问题。

我不是 MySQL 专家,但我正在尝试更上一层楼并制作电影时间表。

我正在尝试从 MySQL 数据库中检索结果,但它没有从 PHP 中获得预期的结果,但它正在 PHPMyAdmin 上的 SQL 浏览器上检索正确的结果。

这是数据库结构:

flm_schedulechart

s_id    m_id    t_id    room    day     time           status
1       1       1       5       0       16:30:00       1
2       1       3       2       0       13:30:00       0
3       1       3       2       1       13:30:00       1

flm_movietheaters_profiles

t_id    name
1       Theater 1   
3       Theater 2

知道如果我在 PHPMyAdmin 的 SQL 浏览器中运行这个 sql 语句...

SELECT s.s_id as 'show_id', t.name as 'theater', s.room as 'room', s.day as 'day', s.time 'time', s.status
FROM flm_schedulechart AS s
JOIN flm_movietheaters_profiles AS t
ON s.t_id = t.t_id
WHERE s.m_id=1
ORDER BY t.name

它检索:

show_id    theater      room    day   time        status
1          Theater 1    5       0     16:30:00    1 
2          Theater 2    2       0     13:30:00    0
3          Theater 2    2       1     13:30:00    1

如果我使用这个 PHP 代码......

这些是我的 PHP 函数:

function getCurrentShowingsByMovieId($con, $movie_id) {
    $result = mysqli_query( $con, "
    SELECT s.s_id as 'show_id', t.name as 'theater', s.room as 'room', s.day as 'day', s.time 'time', s.status
    FROM flm_schedulechart AS s
    JOIN flm_movietheaters_profiles AS t
    ON s.t_id = t.t_id
    WHERE s.m_id=$movie_id
    ORDER BY t.name" );
    return $result;
}

if( isset($_GET['mid']) ) {
    $r = getCurrentShowingsByMovieId( $con, $_GET['mid'] );
    $r = mysqli_fetch_assoc( $r );
}

var_dump($r);

它只检索第一个结果:

array(6) {
["show_id"]=>
string(1) "1"
["theater"]=>
string(16) "Theater 1"
["room"]=>
string(1) "5"
["day"]=>
string(1) "0"
["time"]=>
string(8) "16:30:00"
["status"]=>
string(1) "1"
}

希望这足够清楚:)

提前致谢!

4

1 回答 1

0

你必须循环你的结果:

if( isset($_GET['mid']) ) {
    $r = getCurrentShowingsByMovieId( $con, $_GET['mid'] );
    while($row = mysqli_fetch_assoc($r)) {
        echo "<pre>" . print_r($row,1) . "</pre>";
    }
}
于 2013-08-20T12:17:26.627 回答