仿淘票票主页面的实现
点此查看项目总体介绍
主页需要具备的功能主要是有城市选择,电影显示,跳转,用户登录信息。
城市选择在做的时候没有考虑所以我就没有写这个功能,所以要介绍的就是电影显示、跳转和用户登录信息部分。
一、电影显示
在主页面我们要展示的电影应该要有数量限制而不是展示所有,所以我规定了首页只展示五部电影。
前端页面电影放在div容器里,然后通过php中for语句循环输出五个容器装载每一部电影。电影又分为正在热映和将上映两个部分,两种电影通过标识字段status区分。
homepage.php
<!--正在热映-->
<div class="tab-mov-list" id="div_now">
<?php
for ($i = 0; $i<5;$i++){//通过for语句循环列出五部电影
$film_result = $film->selectFilms_status(1);//调用类函数对电影标识字段为1的进行数据库操作
?>
<div class="mov-card-warp" >
<a class="mov-card" href="showdetailpage.php?film_id=<?php echo $film_result[$i]["film_id"]?>">
<div class="mov-card-poster"><img width="160" height="224" src="<?php echo $film_result[$i]["film_poster"]?>"></div>
<div class="mov-card-name"><span class="bt-1"><?php echo $film_result[$i]["film_name"]?></span></div>
<div class="mov-card-info"></div>
</a>
<a class="mov-card-buy" href="showdetailpage.php?film_id=<?php echo $film_result[$i]["film_id"]?>">选座购票</a></div>
<?php }?>//循环结束
</div>
<!--即将上映-->
<div class="tab-mov-list" id="div_future" style="display: none">
<?php
for ($i = 0; $i<5;$i++){
$film_result = $film->selectFilms_status(0);//调用类函数对电影标识字段为0的进行数据库操作
?>
<div class="mov-card-warp" >
<a class="mov-card" href="showdetailpage.php?film_id=<?php echo $film_result[$i]["film_id"]?>">
<div class="mov-card-poster"><img width="160" height="224" src="<?php echo $film_result[$i]["film_poster"]?>"></div>
<div class="mov-card-name"><span class="bt-1"><?php echo $film_result[$i]["film_name"]?></span></div>
<div class="mov-card-info"></div>
</a>
<a class="mov-card-soon" href="showdetailpage.php">上映时间<?php echo $film_result[$i]["play_time"]?></a></div>
<?php }?>
</div>
在需要从数据库里调用数据时,我主要是通过了service层里的FilmService这个类中的*selectFilms_status()*这个函数进行数据库查询操作。
FilmService.php
<?php
include_once ("../db/DBManage.php");//执行数据库查询操作要先对数据库进行连接
class FilmService{
public function selectFilms_status($status){
$sqlTxt = "select * from film_info where film_play_status ='".$status."'";//数据库查询语句
$dbManage = new DbManage();
$result = $dbManage->executeSqlTxt($sqlTxt);//调用连接数据库函数并执行查询语句
$filmlist = array();
while ($row = mysqli_fetch_array($result)){
array_push($filmlist,$row);
}
$dbManage->closeConnection($result);//关闭连接
return $filmlist;
}
}
DBManage.php
<?php
class DBManage
{
private $conn;
public function executeSqlTxt($sqlTxt){//执行单条sql语句。不管增删改(返回true或者false)查,返回数组或者false,
$this->conn = mysqli_connect("主机名localhost或127.0.0.1", "mysql用户名", "密码","要连接的数据库名") or die("失败". mysqli_error());//数据库连接字符串配置
$result = mysqli_query($this->conn, $sqlTxt);//进行查询或者增删改查。
return $result;
}
public function closeConnection($result){//关闭连接
mysqli_free_result($result);
mysqli_close($this->conn);
}
}
通过以上代码即可实现主页对于影片的显示功能。大致流程如图所示:
二、跳转
主页面的跳转部分是比较多的因为主页面一般会提供其它各部分的接口,在这里一般的超链接我就不过多的赘述了,我只提一下需要做处理的跳转部分。
首页做了处理的跳转共有两处,一是点击影片海报跳转到影片详情页面,二是点击影片下的选座购票同样的也跳转到影片详情页面。因为两处跳转相同所以我就选一处写。
代码:
<a class="mov-card" href="showdetailpage.php?film_id=<?php echo $film_result[$i]["film_id"]?>">
因为我们跳转到影片详情页面时,需要显示影片的相关信息,如海报,导演,演员等,所以我们需要知道我们要的是那部电影的信息,在这里我通过film_id=<?php echo $film_result[$i]["film_id"]?>
将我们点击的电影id存在了超链接里,这样在电影详情页面我们就可以通过电影id从数据库中获取电影的详细信息。
三、用户登录信息
用户的登录与否决定着能否购票,所以在每个页面都需要一个存储用户登录信息的地方。
代码:
<a href="loginpage.php" class="head1"><span>
<?php
session_start();
//$_SESSION['suc_login']默认值为false,在登陆时会获得一个为true的值
if($_SESSION['suc_login']){
echo "<li class='li'><div id='dropdown'><a href='usercenterpage.php'>"
.$_SESSION['user_name']
."</a><div class='dropdown-content'><a href=''>账号管理</a>丨<a href='../controller/logout.php'>退出</a></div></div></li>";
} else {
echo "<li class='li'>亲,请登录</li>";
}
?>
</span></a>
我使用的存储用户信息的方法即利用session会话。
上一篇:登录注册模块实现
下一篇:电影主页面及电影详情页面实现