【发布时间】:2015-06-01 11:05:52
【问题描述】:
我已经创建了这个 PHP 脚本,它是从其他人的 sn-ps 中提取的,并且大部分情况下它都可以工作。但是,“实时航班”表发生了一些奇怪的事情,我似乎无法修复它,想知道这里是否有人可以提供帮助。
问题在于“试点”详细信息。我有一段代码应该为每个飞行员 pirep 识别他们的 ID,然后加载他们的名字和姓氏。这与第二张表(最近的航班)的代码完全相同,并且该部分运行良好。出于某种原因,在第一个表中,当只有一名飞行员飞行时,一切正常。一旦我让两名飞行员飞行,表格就会显示飞行员的名字都是相同的,而且不一定是当时实际飞行的飞行员的名字。
我已粘贴下表。该编码构成了称为 PHPVMS 的虚拟航空公司管理系统的一部分,并且基于 PHP、Dataclasses 和 MySQL。您可以在www.virginatlanticvirtual.co.uk查看页面本身
我目前的想法是,因为第一个和第二个飞行表使用的是同一段代码,这可能会导致冲突,但我的技术还不足以解决如何停止冲突或更改一个代码所以它的做法不同。
这是我希望社区可以帮助我的地方。如果您还有其他需要了解或有任何疑问,请告诉我。
提前致谢。
<!-- Start of live flights table -->
<div class="col-md-12 page-content">
<h2>Live Flights</h2>
<div class="stats-table">
<table>
<tr>
<th>Pilot</th>
<th>Flight</th>
<th>Departure</th>
<th>Arrival</th>
<th>Aircraft</th>
<th>Status</th>
</tr>
<?php $results=A CARSData::GetACARSData(); if (count($results)>0) { foreach($results as $flight) { ?>
<tr>
<?php $count=1 0; $pireps=P IREPData::getRecentReportsByCount($count); ?>
<?php if($flight->phasedetail == "Boarding") { echo "
<img style='padding-left:3px;' src=''>"; } elseif($flight->phasedetail == "Arrived") { echo "
<img style='padding-left:3px;' src=''>"; } elseif($flight->phasedetail == "On Approach") { echo "
<img style='padding-left:3px;' src=''>"; } ?>
<?php foreach ($pireps as $pirep) { $pilotinfo=P ilotData::getPilotData($pirep->pilotid); $pilotid = PilotData::getPilotCode($pilotinfo->code, $pilotinfo->pilotid); } ?>
<td>
<?php echo '<a href="'.SITE_URL. '/index.php/profile/view/'.$pilotinfo->pilotid.'">'.$pilotinfo->firstname.' '.$pilotinfo->lastname.'</a>';?></td>
<td>
<?php echo $flight->flightnum;?></td>
<td>
<?php echo $flight->depname;?></td>
<td>
<?php echo $flight->arrname;?></td>
<td>
<?php echo $flight->aircraftname;?></td>
<td>
<?php if($flight->phasedetail != 'Paused') { echo $flight->phasedetail; } else { echo "Cruise"; }?></font>
</td>
</tr>
<?php } } else { ?>
<tr>
<td width="20%" align="center" colspan="6" style="padding: 5px; font-size: 13px; font-weight: bold; color: #3399FF;">No Flights in Progress!</td>
</tr>
<?php } ?>
</table>
</div>
</div>
<!-- Start of recent flights table -->
<div class="col-md-12 page-content">
<h2>Recent Flights</h2>
<div class="stats-table">
<table>
<tr>
<th>Flight</th>
<th>Pilot</th>
<th>Departure</th>
<th>Arrival</th>
<th>Aircraft</th>
<th>Duration</th>
<th>V/S</th>
<th>Info</th>
</tr>
<?php $count=1 0; $pireps=P IREPData::getRecentReportsByCount($count); ?>
<?php if (count($results)>0); if (count($pireps) > 0) { foreach ($results as $flight); foreach ($pireps as $pirep) { $pilotinfo = PilotData::getPilotData($pirep->pilotid); $pilotid = PilotData::getPilotCode($pilotinfo->code, $pilotinfo->pilotid); $acrid = OperationsData::getAircraftByReg($pirep->registration);
$results = ACARSData::GetACARSData(); $fcode = substr($flight->flightnum, 0, 3); echo '
<tr>'; echo '
<td><a href="'.SITE_URL.'/index.php/pireps/viewreport/'.$pirep->pirepid.'">'.$pirep->code.$pirep->flightnum.'</a>
</td>'; echo '
<td><a href="'.SITE_URL.'/index.php/profile/view/'.$pilotinfo->pilotid.'">'.$pilotinfo->firstname.' '.$pilotinfo->lastname.'</a>
</td>'; echo '
<td>'.$pirep->depicao.'</td>'; echo '
<td>'.$pirep->arricao.'</td>'; echo '
<td>'.$pirep->aircraft.'</td>'; echo '
<td>'.$pirep->flighttime.'</td>'; echo '
<td>'.$pirep->landingrate.' ft/m</td>'; if($pirep->accepted == PIREP_ACCEPTED) echo '
<td><span class="label label-important"><font color="green">Accepted</font></span>
</td>'; elseif($pirep->accepted == PIREP_REJECTED) echo '
<td><span class="label label-important"><font color="red">Rejected</font></span>
</td>'; elseif($pirep->accepted == PIREP_PENDING) echo '
<td><span class="label label-warning"><font color="orange">Pending</font></span>
</td>'; elseif($pirep->accepted == PIREP_INPROGRESS) echo '
<td>On Progress</td>'; echo '</tr>'; } } else { echo '
<tr>
<td>There are no recent Flights!</td>
</tr>'; } ?>
</table>
</div>
<!-- End of recent flights table -->
</div>
<!-- Start of booked flights table -->
<div class="col-md-12 page-content">
<h2>Booked Flights</h2>
<div class="stats-table">
<?php MainController::Run( 'FrontBids', 'RecentFrontPage', 10); ?>
</div>
</div>
【问题讨论】:
-
在您的示例页面中,没有实时航班详细信息,因此问题并不明显。作为一个附带问题,如果可能的话,我真的会尽量避免使用内联 CSS。
-
Php 肯定会延续糟糕的编程/艰难的调试实践。不是对这个程序员的评论,而是对 php 结构的反映
-
这是什么意思:?php $count=1 0;
-
@Raad - 该页面正在获取实时数据,因此不幸的是,只有在多人飞行时(通常是英国晚上时间)才能看到实际错误。内联 CSS 是 PHPVMS 预构建内容管理系统的一部分。我不需要它用于 SEO 目的,所以一点内联 CSS 不是主要问题。 :)
-
@AsConfused - 我不直接知道那段代码是什么,但我会看看是否能找到。 :)