|
|
|
หาเส้นทางที่สั้นที่สุด ช่วยด้วยๆๆๆๆๆๆๆ ต้องทำให้ต่อรถได้ 3 สาย และหาเส้นทางที่สั้นที่สุด |
|
|
|
|
|
|
|
ต้องทำให้ต่อรถได้ 3 สาย และหาเส้นทางที่สั้นที่สุด และบอกเวลาเดินรถของแต่ละเที่ยวว่ามีรถคันไหนบ้าง
Code (PHP)
<?
# 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 #
include("../connect/connect.php");
function getSationName( $station_id ){
$re = mysql_query(" select station_name from tb_station where station_id = ".$station_id." ");
$rs = mysql_fetch_assoc( $re );
return $rs['station_name'];
}
function getRouteName( $route_id ){
$re = mysql_query(" select route_name from tb_route where route_id = ".$route_id." ");
$rs = mysql_fetch_assoc( $re );
return $rs['route_name'];
}
# 5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 #
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Bus Line Information</title>
</head>
<script type="text/javascript" src="../all/all.js"></script>
<link rel="stylesheet" type="text/css" href="../all/style.css">
<body style="font-size:12px;">
เส้นทางจาก ปลายทาง
<form action="" method="post">
<select name="station_id1" id="station_id1">
<?
$re = mysql_query(" select * from tb_station ");
while( $rs = mysql_fetch_assoc( $re ) ){
?>
<option value="<?=$rs['station_id'];?>" <?=($rs['station_id']==$_POST['station_id1'])?'selected':'';?>><?=$rs['station_name'];?></option>
<? } ?>
</select>
=>
<select name="station_id2" id="station_id2">
<?
$re = mysql_query(" select * from tb_station ");
while( $rs = mysql_fetch_assoc( $re ) ){
?>
<option value="<?=$rs['station_id'];?>" <?=($rs['station_id']==$_POST['station_id2'])?'selected':'';?>><?=$rs['station_name'];?></option>
<? } ?>
</select>
<input type="submit" value="ค้นหา">
</form>
<?
$station_id1 = $_POST['station_id1'];
$station_id2 = $_POST['station_id2'];
$sql = " SELECT
a.busstop_id,
a.route_id,
a.station_id,
a.point_no,
b.route_name,
c.station_name
FROM
tb_busstop a
Inner Join tb_route b ON a.route_id = b.route_id
Inner Join tb_station c ON a.station_id = c.station_id
";
// หาว่าจุด ขึ้นรถ อยู่ในเส้นทางไหน //
$re = mysql_query(" $sql Where ( a.station_id = ".$station_id1." ) ");//ค่าของ post$station_id1
$n=0;
while( $rs = mysql_fetch_assoc( $re ) ){
// echo '#==='.$rs['station_name'].'('.$rs['station_id'].') => '.$rs['busstop_id'].' | '.$rs['route_id'].' | '.$rs['route_name'].' | <br>';
// หาจุด ลงรถ แบบสายเดี่ยว
$re2 = mysql_query(" $sql Where ( a.route_id = ".$rs['route_id']." and a.station_id = ".$station_id2." ) LIMIT 1 ");
$num = 0;
while( $rs2 = mysql_fetch_assoc( $re2 ) ){
echo ($n+1).'. ';
echo '(<font color=#009900 size=2>ให้ขึ้นรถที่</font>) '.$rs['station_name'].'('.$rs['station_id'].') ===> '.$rs2['busstop_id'].' | '.$rs2['route_id'].' | <font color=#FF3300 size=2>ให้ขึ้นสาย </font> '.$rs2['route_name'].' | <br>';
$num++;
$n++; // เพื่อไม่ต้องหาเส้นทางอื่น เพราะมีเส้นหลักแล้ว
}
if($num==0){
$route_arr[] = $rs['route_id']; // เก็บเส้นทางอื่นๆที่จะไป เมื่อต้องต่อสายรถ
}
}
if($n==0){
foreach( $route_arr as $ind=>$route_id2 ){
echo 'ให้ขึ้นรถสาย '.getRouteName( $route_id2 ).' (ต่อสาย)<br>';
$re3 = mysql_query(" $sql Where ( a.route_id = ".$route_id2." and a.station_id <> ".$station_id1." ) ");
while( $rs3 = mysql_fetch_assoc( $re3 ) ){
//echo '---'.$rs3['station_name'].'('.$rs3['station_id'].')('.$station_id2.')<br>';
route_node($sql, $rs3['station_id'], $station_id2, 0);
}
}
}
function route_node($sql, $station_id1, $station_id2, $loop){
// หาว่าจุด ขึ้นรถ อยู่ในเส้นทางไหน
$re = mysql_query(" $sql Where ( a.station_id = ".$station_id1." ) ");
while( $rs = mysql_fetch_assoc( $re ) ){
// echo '#==='.$rs['station_name'].'('.$rs['station_id'].') => '.$rs['busstop_id'].' | '.$rs['route_id'].' | '.$rs['route_name'].' | <br>';
// หาจุด ลงรถ แบบสายเดี่ยว
$re2 = mysql_query(" $sql Where ( a.route_id = ".$rs['route_id']." and a.station_id = ".$station_id2." ) LIMIT 1 ");
$num = 0;
while( $rs2 = mysql_fetch_assoc( $re2 ) ){
echo ' --(<font color=#009900 size=2>ถ้าลงที่</font>) ';
echo $rs['station_name'].'('.$rs['station_id'].') ===> '.$rs2['busstop_id'].' | '.$rs2['route_id'].' | <font color=#FF3300 size=2>ให้ขึ้นสาย </font>'.$rs2['route_name'].' | <br>';
$num++;
}
}
} // function
?>
Tag : - - - -
|
|
|
|
|
|
Date :
2010-07-02 16:29:18 |
By :
wisan191 |
View :
1106 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
http://www.4shared-remove-by-admin.com/document/-OmUqIFF/bus_db.html]bus_db.sql
เอาฐานข้อมูลไปลองดูให้หน่อยคราบ
ว่าต้องเพิ่มตารางอะไร
หรือแก้ไขตรงไหน
|
|
|
|
|
Date :
2010-07-02 16:48:17 |
By :
wisan191 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
http://www.firstmeditech.com/cakephp/post/shortest-path
|
|
|
|
|
Date :
2010-07-02 17:32:30 |
By :
num |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากคราบ
|
|
|
|
|
Date :
2010-07-03 23:57:14 |
By :
wisan191 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|