我觉得这个很有实际作用,便研究了一下。一会就有了思路,其实不难。
思路:先把 每个公交的路线,经过站点写入数据库
比如(bus表):
id bus_id station
1 8 站点1,站点2,站点3,站点4,站点5
然后用查询语句
$sql = "select bus_id from bus where station like '%站点1%' and station like '%站点2%';";
就可以把经过的查询出来了。
PS: 其实这个很简单做,就是录入数据有点麻烦。。
有了思路后,我就去百度搜了一下,武汉公交线路数据,果然在文库就找到了我要的数据资料。下载下来后,得到一个.xls文件。
然后用Navicat for MySQL(该软件百度上有)软件把公交信息导入到数据表。
最后就是写代码,一个文件搞定。因为做的很粗略,但是功能实现了^_^ 。
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
<title>武汉公交查询系统</title>
<style type="text/css">
body{font-size:13px; width:800px;}
</style>
</head>
<body>
<form action="" method="get">
请输入起点:<input type="text" name="start"/>
请输入目的:<input type="text" name="end"/>
<input type="submit" name="submit"/>
</form>
<hr />
</body>
</html>
<?php
//公交查询系统
header("Content-type:text/html;charset=gb2312");
if(empty($_GET['submit'])){
exit();
}
$link =mysql_connect("localhost","root","root");
mysql_select_db("test");
mysql_query("set names gbk");
$start_station = $_GET['start'];
$end_station= $_GET['end'];
$sql ="select * from wuhanbus where gostation like '%{$start_station}%'and gostation like '%{$end_station}%';";
$res =mysql_query($sql,$link);
$busnum =mysql_num_rows($res);
if($busnum==0){
exit("对不起!!没有找到,或没有该直达车。");
}else{
echo"共找到".$busnum."辆。<hr/>";
while($rows=mysql_fetch_array($res)){
echo"公交:".$rows['busname']."<br/>";
//将目标地设为红色字体
$gostation =str_replace($start_station,"<spanstyle='color:red'>".$start_station."</span>",$rows['gostation']);
$gostation =str_replace($end_station,"<spanstyle='color:red'>".$end_station."</span>",$gostation);
echo"公交路线:".$gostation."<br/>";
echo"普通票价:".$rows['price']."元<br/>";
echo"刷卡:".$rows['cardprice']."元<br/>";
echo"<hr/>rn";
}
}
?>
虽然功能很简单,不支持换乘查询等,但是可以理解很多东西。
如果有什么问题,可以联系我 QQ1820808042 验证信息注明:PHP
期待与您一起交流!!