誰能提点改进的建议,使这个程序的运行速度快一点?谢谢!我暂时没分给了,先帮着,以后再给吧!

siney1206 2003-12-23 03:21:17
<?php
include('func.php');
conn();
$day=date("Y-m-d");
$sql6="select count(*) from over_time where out_day='".$day."'";
$result6=mysql_query($sql6);
$array6=mysql_fetch_array($result6);
$total=$array6['count(*)'];
if($total!=0)
{
$s="select distinct prop from dist_info";
$res=mysql_query($s);
while($arra=mysql_fetch_array($res))
{
$prop=$arra['prop'];
$sql="select * ,count(*) from over_time where car_course='".$prop."'and out_day='".$day."' group by car_course";
$result=mysql_query($sql);
$array=mysql_fetch_array($result);
if($prop==0)
{
if($array['count(*)']!=0)
{
echo "<center><strong>以下是".$day."总的出车情况 :<font color='navy'>共出车</font><font color='magenta'>".$total."</font><font color='navy'>次</font></strong></center><br>";
echo "<table border='0' cellpadding='0' cellspacing='0'><tr>";
echo "<td width=50%><font color='blue'>短途共</font></td><td width=50%><font color='hotpink'>".$array['count(*)']."</font><font color='blue'>次</font></td></tr></table>";
echo "具体地点分别为:<br>";
echo "<table width=100% border='1' cellpadding='0' cellspacing='0'><tr>";
echo "<td>司机姓名</td>";
echo "<td>司机条码</td>";
echo "<td>出车地点</td>";
echo "<td>车号</td>";
echo "<td>出车时间</td>";
echo "<td>回来时间</td></tr>";
$sql2="select * from over_time where car_course='0' and out_day='".$day."' order by out_time";
$re=mysql_query($sql2);
while($array2=mysql_fetch_array($re))
{
echo "<tr><td>".$array2['driver_name']."</td>";
echo "<td>".$array2['bar_code']."</td>";
echo "<td>".$array2['car_addr']."</td>";
echo "<td>".$array2['out_car']."</td>";
echo "<td>".$array2['out_time']."</td>";
echo "<td>".$array2['back_time']."</td></tr>";
}
echo "</table>";
}
}
if($prop==1)
{
if($array['count(*)']!=0)
{
echo "<br><table border='0'><tr>";
echo "<td width=50%><font color='blue'>长途共</font></td><td width=50%><font color='hotpink'>".$array['count(*)']."</font><font color='blue'>次</font></td></tr></table>";
echo "具体地点分别为:<br>";
echo "<br><table width=100% border='1' cellpadding='0' cellspacing='0'><tr>";
echo "<td>司机姓名</td>";
echo "<td>司机条码</td>";
echo "<td>出车地点</td>";
echo "<td>车号</td>";
echo "<td>出车时间</td>";
echo "<td>回来时间</td></tr>";
$sql3="select * from over_time where car_course='1' and out_day='".$day."' order by out_time";
$re2=mysql_query($sql3);
while($array3=mysql_fetch_array($re2))
{
echo "<tr><td>".$array3['driver_name']."</td>";
echo "<td>".$array3['bar_code']."</td>";
echo "<td>".$array3['car_addr']."</td>";
echo "<td>".$array3['out_car']."</td>";
echo "<td>".$array3['out_time']."</td>";
echo "<td>".$array3['back_time']."</td></tr>";
}
echo "</table>";
}
}
if($prop==2)
{
if($array['count(*)']!=0)
{
echo "<table border='0'><tr>";
echo "<br><td width=50%><font color='blue'>其它地点共</font></td><td width=50%><font color='hotpink'>".$array['count(*)']."</font><font color='blue'>次</font></td></tr></table>";
echo "具体地点分别为:<br>";
echo "<br><table width=100% border='1' cellpadding='0' cellspacing='0'><tr>";
echo "<td>司机姓名</td>";
echo "<td>司机条码</td>";
echo "<td>出车地点</td>";
echo "<td>车号</td>";
echo "<td>出车时间</td>";
echo "<td>回来时间</td></tr>";
$sql4="select * from over_time where car_course='2' and out_day='".$day."' order by out_time";
$re3=mysql_query($sql4);
while($array4=mysql_fetch_array($re3))
{
echo "<tr><td>".$array4['driver_name']."</td>";
echo "<td>".$array4['bar_code']."</td>";
echo "<td>".$array4['car_addr']."</td>";
echo "<td>".$array4['out_car']."</td>";
echo "<td>".$array4['out_time']."</td>";
echo "<td>".$array4['back_time']."</td></tr>";
}
echo "</table>";
}
}
}
}
else
{
echo "There isn't out cars!";
}
?>
...全文
24 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
siney1206 2003-12-30
  • 打赏
  • 举报
回复
xuzuning(唠叨)
用函数到是一个比较理想的办法,
我现在是通过不能的文件执行完后再放到一个页面里的,这样速度是快多了,不过有点不太好看。
表结构给出来可能会更加难看,因为在这个表里至少有十几个字段。我现在都有点糊了??
xuzuning 2003-12-26
  • 打赏
  • 举报
回复
看的头发昏。你应给出表结构和字段说明

1、select中用字段列表而不要用*
2、尽量不要在循环内做查询
3、通过适当的排序使相关的内容聚集,分别处理时也只需判断关键字是否变化
4、你那个供输出的表格宜分离出来作为函数,只是“标题”不同嘛

“其实我想实现的功能是这样的:”
1、我需要统计所有的出车次数;
2、要通过“长途、短途、其它”三类来统计各有多少次出车;
select count(*) from table group by 运输类型
结果的各行分别对应:长途、短途、其它
三行之和即为总数
可用数组做缓存

3、对于“长途、短途、其它”各自的数据要通过不同的表格显示出且在表格的上头都要有上面写到的字样;
select bar_code,car_addr,out_car,out_time,back_time,运输类型 from table order by 运输类型
处理时当发现当前的“运输类型”与上一次不同时做相关处理
siney1206 2003-12-26
  • 打赏
  • 举报
回复
其实我想实现的功能是这样的:
1、我需要统计所有的出车次数;
2、要通过“长途、短途、其它”三类来统计各有多少次出车;
3、对于“长途、短途、其它”各自的数据要通过不同的表格显示出且在表格的上头都要有上面写到的字样;
我想了许久,只想出这个方法,所以才希望得到高手的帮助!
phanx(向右走) 谢谢!
phanx 2003-12-23
  • 打赏
  • 举报
回复
HTML 代码,最好不要放进 echo里面. 直接写在外面效率更高.
业务逻辑比较混乱,建议再把结构弄清晰一点. SQL 查询最好集中进行.
select count(*) 这样可以 select count(*) as num 然后用
$array['num'] 代替 $array['count(*)']来访问. 还有建议只以一种方式来
访问集合, 要么用 mysql_fetch_row() 然后用 $array[0]
要么用 mysql_fetch_assoc() 然后用 $array['key']来访问
siney1206 2003-12-23
  • 打赏
  • 举报
回复
怎么没有人帮忙啊?哪怕只提供一点点看法,好让我知道该从哪着手啊!
非常的感谢!

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧