用php创建html表
我被困在这里面了: mysql表:带有列的表示例(flightnumber、company、DateArrival、timeleave、TimeArrival) 其中我生成如下数组:用php创建html表,php,html,mysql,arrays,Php,Html,Mysql,Arrays,我被困在这里面了: mysql表:带有列的表示例(flightnumber、company、DateArrival、timeleave、TimeArrival) 其中我生成如下数组: Array[0] - Array[0][1] => 1000 - Array[0][2] => Company A - Array[0][3] => 2014-05-10 - Array[0][4] => 10:00:00 - Array[0][5] => 15:00:00
Array[0]
- Array[0][1] => 1000
- Array[0][2] => Company A
- Array[0][3] => 2014-05-10
- Array[0][4] => 10:00:00
- Array[0][5] => 15:00:00
Array[1]
- Array[1][1] => 2000
- Array[1][2] => Company A
- Array[1][3] => 2014-05-11
- Array[1][4] => 10:00:00
- Array[1][5] => 15:00:00
Array[2]
- Array[2][1] => 3000
- Array[2][2] => Company B
- Array[2][3] => 2014-05-10
- Array[2][4] => 10:00:00
- Array[2][5] => 15:00:00
Array[3]
- Array[3][1] => 4000
- Array[3][2] => Company B
- Array[3][3] => 2014-05-11
- Array[3][4] => 16:00:00
- Array[0][5] => 19:00:00
<p>....................| 2014-05-10|2014-05-11 |</p>
<p>10:00:00 - 15:00:00 | Company A |...........|</p>
<p>10:00:00 - 15:00:00 | Company B | Company A |</p>
<p>16:00:00 - 19:00:00 | ..........| Company B |</p>
然后我需要将其放在html表中:
Array[0]
- Array[0][1] => 1000
- Array[0][2] => Company A
- Array[0][3] => 2014-05-10
- Array[0][4] => 10:00:00
- Array[0][5] => 15:00:00
Array[1]
- Array[1][1] => 2000
- Array[1][2] => Company A
- Array[1][3] => 2014-05-11
- Array[1][4] => 10:00:00
- Array[1][5] => 15:00:00
Array[2]
- Array[2][1] => 3000
- Array[2][2] => Company B
- Array[2][3] => 2014-05-10
- Array[2][4] => 10:00:00
- Array[2][5] => 15:00:00
Array[3]
- Array[3][1] => 4000
- Array[3][2] => Company B
- Array[3][3] => 2014-05-11
- Array[3][4] => 16:00:00
- Array[0][5] => 19:00:00
<p>....................| 2014-05-10|2014-05-11 |</p>
<p>10:00:00 - 15:00:00 | Company A |...........|</p>
<p>10:00:00 - 15:00:00 | Company B | Company A |</p>
<p>16:00:00 - 19:00:00 | ..........| Company B |</p>
2014-05-10 2014-05-11|
10:00:00-15:00:00 | A公司||
10:00:00-15:00:00 | B公司| A公司|
16:00:00-19:00:00 | B公司|
我已经:
Array[0]
- Array[0][1] => 1000
- Array[0][2] => Company A
- Array[0][3] => 2014-05-10
- Array[0][4] => 10:00:00
- Array[0][5] => 15:00:00
Array[1]
- Array[1][1] => 2000
- Array[1][2] => Company A
- Array[1][3] => 2014-05-11
- Array[1][4] => 10:00:00
- Array[1][5] => 15:00:00
Array[2]
- Array[2][1] => 3000
- Array[2][2] => Company B
- Array[2][3] => 2014-05-10
- Array[2][4] => 10:00:00
- Array[2][5] => 15:00:00
Array[3]
- Array[3][1] => 4000
- Array[3][2] => Company B
- Array[3][3] => 2014-05-11
- Array[3][4] => 16:00:00
- Array[0][5] => 19:00:00
<p>....................| 2014-05-10|2014-05-11 |</p>
<p>10:00:00 - 15:00:00 | Company A |...........|</p>
<p>10:00:00 - 15:00:00 | Company B | Company A |</p>
<p>16:00:00 - 19:00:00 | ..........| Company B |</p>
用日期填充表格的顶部,但现在我被卡住了
<thead>
<?php
echo "<tr>";
for ($row = 0; $row < 5;) {
$dia=$array[$row][2];
echo "<th>Dia " . $dia . "</th>";
$i=$row;
for ($rownext = ($row+1); $rownext < 5;){
if ($array[$rownext][2]==$dia){
$i++;
};
$rownext++;
};
$row=($i+1);
};
echo "</tr>";
?>
</thead>
这可能要整洁得多,但我已尝试将事情尽可能分开,并在整个过程中进行注释,以便您了解它是如何工作的。这看起来应该可以做到:
$details = array(
1 => array(
1 => 1000,
2 => 'Company A',
3 => '2014-05-10',
4 => '10:00:00',
5 => '15:00:00',
),
2 => array(
1 => 1000,
2 => 'Company A',
3 => '2014-05-11',
4 => '10:00:00',
5 => '15:00:00',
),
3 => array(
1 => 1000,
2 => 'Company B',
3 => '2014-05-10',
4 => '10:00:00',
5 => '15:00:00',
),
4 => array(
1 => 1000,
2 => 'Company B',
3 => '2014-05-11',
4 => '16:00:00',
5 => '19:00:00',
)
);
// Format our data into something we can use more easily
$flight_dates = array();
$times = array();
$dates = array();
foreach ($details as $flight_details) {
$company_name = $flight_details[2];
$date = $flight_details[3];
$time = $flight_details[4] . ' - ' . $flight_details[5];
// Keep a unique record of each date, and the times of flights
$dates[$date] = 1;
$times[$time] = 1;
// Record which date/time each company is flying
$flight_dates[$date][$time][] = $company_name;
}
// Create the table header
$html = '<table border="1">';
$html .= '<thead>';
$html .= '<tr>';
$html .= '<th> </th>';
foreach ($dates as $date => $value1) {
$html .= '<th>' . $date . '</th>';
}
$html .= '</tr>';
// Create the rows in the table
foreach ($times as $time => $value1) { // Loop through each flight time
$html .= '<tr>';
$html .= '<td>' . $time . '</td>'; // The first column is always the time
foreach ($dates as $date => $value2) { // Loop through each date
if (!empty($flight_dates[$date][$time])) { // Check if flights exist at the current time
$html .= '<td>' . implode(', ', $flight_dates[$date][$time]) . '</td>'; // List companies
} else { // No flights
$html .= '<td> </td>'; // Leave cell blank
}
}
$html .= '</tr>';
}
$html .= '</table>';
echo $html;
$details=array(
1=>数组(
1 => 1000,
2=>“A公司”,
3 => '2014-05-10',
4 => '10:00:00',
5 => '15:00:00',
),
2=>数组(
1 => 1000,
2=>“A公司”,
3 => '2014-05-11',
4 => '10:00:00',
5 => '15:00:00',
),
3=>数组(
1 => 1000,
2=>“B公司”,
3 => '2014-05-10',
4 => '10:00:00',
5 => '15:00:00',
),
4=>数组(
1 => 1000,
2=>“B公司”,
3 => '2014-05-11',
4 => '16:00:00',
5 => '19:00:00',
)
);
//将数据格式化为更易于使用的格式
$flight_dates=array();
$times=array();
$dates=array();
foreach($详细信息作为$flight\u详细信息){
$company_name=$flight_details[2];
$date=$flight_详情[3];
$time=$flight_details[4]。-“$flight_details[5];
//保存每个日期和航班时间的唯一记录
$dates[$date]=1;
$times[$time]=1;
//记录每个公司飞行的日期/时间
$flight\u dates[$date][$time][]=$company\u name;
}
//创建表格标题
$html='';
$html.='';
$html.='';
$html.='';
foreach($dates为$date=>$value1){
$html.=''.$date';
}
$html.='';
//在表中创建行
foreach($times as$time=>$value1){//循环每个飞行时间
$html.='';
$html.=''.$time.';//第一列始终是时间
foreach($dates as$date=>$value2){//循环每个日期
如果(!empty($flight_dates[$date][$time]){//检查当前时间是否存在航班
$html.=''.introde(',',$flight_dates[$date][$time])。';//列出公司
}否则{//没有航班
$html.='';//将单元格留空
}
}
$html.='';
}
$html.='';
echo$html;
用它做了一张桌子,不显示为一张桌子,这很烦人,但是你可以复制它提供给你的html输出,看看它是什么样子。最大的困难是表格是一行一行的……如果它是在列中,在这种情况下会更容易。向我们展示你是如何填充标题的。我将首先构建一个以时间间隔为键的表格数组。仅供参考,你不需要
在}
之后,只要}
就足够了,只是一个样式:)@mlefevere tks太多了,很棒的代码:)我需要它在每个单元格中放置一个值,因为我正在做一个JS onclick来打开另一页中的记录。但我会从这里得到它。我又犯了很多错误。而且对于虐待@MLeFevre,如果在同一天和同一时间有两家公司,我正试图调整代码,使之随着时间重复这一行,但我遇到了一些问题。。。。还要一点帮助吗?