我想生成一个HTML表,并将MySQL表中的记录显示为列,而不是行,如:周名称在表’周’中,每周记录还包含该周的会话数:+---------+-----------+----------+-----------+| week_pk | week_name | sessions | cohort_fk ...
我想生成一个HTML表,并将MySQL表中的记录显示为列,而不是行,如:
周名称在表’周’中,每周记录还包含该周的会话数:
+---------+-----------+----------+-----------+
| week_pk | week_name | sessions | cohort_fk |
+---------+-----------+----------+-----------+
| 1 | Week 1 | 3 | 1 |
| 2 | Week 2 | 2 | 1 |
| 3 | Week 3 | 1 | 1 |
+---------+-----------+----------+-----------+
队列表是:
+-----------+-------------+-------------+-------------+
| cohort_pk | cohort_name | cohort_code | cohort_year |
+-----------+-------------+-------------+-------------+
| 1 | Some name | MICR8976 | 2014 |
+-----------+-------------+-------------+-------------+
我发现一些代码在表格中生成记录为HTML表格列,好的(我确信这段代码可以改进……).
那么,问题是如何修改此代码以在HTML表格中为每周coloumn生成会话列?例如,对于HTML表格中的第1周列,3个会话列,依此类推其他周列?
对解决方案的任何帮助表示赞赏
$query = "SELECT * FROM cohort, week
WHERE week.cohort_fk = cohort.cohort_pk
AND cohort.cohort_year = '$year'
AND cohort.cohort_pk = '$cohort'";
$result = mysql_query($query, $connection) or die(mysql_error());
echo "<table width = 50% border = '1' cellspacing = '2' cellpadding = '0'>";
$position = 1;
while ($row = mysql_fetch_array($result)){
if($position == 1){
echo "<tr>";
}
echo " <td width='50px'>" . $row['week_name'] . "</td> ";
if($position == 3){
echo "</tr> ";
$position = 1;
}else{
$position++;
}
}
$end = "";
if($position != 1){
for($z=(3-$position); $z>0; $z--){
$end .= "<td></td>";
}
$end .= "</tr>";
}
echo $end."</table> ";
解决方法:
mysqli_ *函数用于以下示例.
$year = 2014; //for the testing purpose
$cohort = 1; //for the testing purpose
$query = "SELECT * FROM cohort, week
WHERE week.cohort_fk = cohort.cohort_pk
AND cohort.cohort_year = '$year'
AND cohort.cohort_pk = '$cohort'";
$dblink = mysqli_connect("localhost", "root", "", "test");
$result = mysqli_query($dblink, $query);
echo "<table border='1'>";
echo "<tr><td>Name</td>";
$second_row = "<tr><td>Session</td>";
while( $row = mysqli_fetch_assoc($result) ){
$weekname = $row["week_name"];
$n_session = $row["sessions"];
echo "<td colspan='$n_session'>$weekname</td>";
for($i=1; $i<=$n_session; $i++){
$second_row .= "<td>S$i</td>";
}
}//end while
echo "</tr>";
echo "$second_row</tr>";
echo "</table>";
添加:
生成第三行 –
$year = 2014;
$cohort = 1;
$query = "SELECT * FROM cohort, week
WHERE week.cohort_fk = cohort.cohort_pk
AND cohort.cohort_year = '$year'
AND cohort.cohort_pk = '$cohort'";
$dblink = mysqli_connect("localhost", "root", "", "test");
$result = mysqli_query($dblink, $query);
echo "<table border='1'>";
echo "<tr><td>Name</td>";
$second_row = "<tr><td>Session</td>";
$totalcolumn = 1; //for the third row
while( $row = mysqli_fetch_assoc($result) ){
$weekname = $row["week_name"];
$n_session = $row["sessions"];
$totalcolumn += $n_session; //for the third row
echo "<td colspan='$n_session'>$weekname</td>";
for($i=1; $i<=$n_session; $i++){
$second_row .= "<td>S$i</td>";
}
}//end while
echo "</tr>";
echo $second_row . "</tr>";
echo "<tr>"; //for the third row
for($i=1; $i<=$totalcolumn; $i++){ //for the third row
echo "<td>data-set</td>"; //for the third row
} //for the third row
echo "</tr>"; //for the third row
echo "</table>";
你可以添加另一个HTML< table>代替数据集
沃梦达教程
本文标题为:php – 将mySQL记录显示为HTML表格列
基础教程推荐
猜你喜欢
- Ajax实现简单下拉选项效果【推荐】 2022-12-28
- 最新JS正则表达式验证邮箱和手机号实例(2022) 2022-10-21
- vue开发之生命周期 2023-10-08
- 关于 asp.net:如何让任何 asp:LinkBut??ton 看起来像一 2022-09-21
- 利用AJAX实现无刷新数据分页 2022-12-28
- 微信小程序全局文件的使用详解 2022-08-31
- vue的 Mixins (混入) 2023-10-08
- 原生AJAX封装的简单实现 2023-01-20
- 将xml文件作为一个小的数据库,进行学生的增删改查的简单实例 2023-01-20
- 详解JavaScript的计时器和按钮效果设置 2023-08-12