html - 如何用Jsp和Mysql将列转换为行?

标签 html mysql jsp

我有一个从数据库获取动态数据的表。 SQL 自然会按列显示数据:

<table style="border: 1px none ;" border="1">
<tbody>
    <tr>
        <td>Player_picture</td>
        <td>Player_Name</td>
        <td>Age</td>
        <td>#Games</td>
        <td>Average_score</td>
    </tr>
</tbody>
</table>

我想将列转换为行并在浏览器中显示,如下所示:

<table style="border: 1px none ; width: 703px;" border="1">
  <tbody>
    <tr>
      <td colspan="1" rowspan="5" style="vertical-align: top; width: 173px;">Row#1
        <br>
      </td>
      <td style="width: 242px;">Player#1 (picture)</td>
      <td style="width: 270px;">Player#2 (picture)</td>
      <td style="width: 240px;">Player#3 (picture)</td>
    </tr>
    <tr>
      <td style="vertical-align: top; width: 242px;">Name</td>
      <td style="vertical-align: top; width: 270px;">Name</td>
      <td style="vertical-align: top; width: 240px;">Name</td>
    </tr>
    <tr>
      <td style="vertical-align: top; width: 242px;">Age</td>
      <td style="vertical-align: top; width: 270px;">Age</td>
      <td style="vertical-align: top; width: 240px;">Age</td>
    </tr>
    <tr>
      <td style="vertical-align: top; width: 242px;">#Games</td>
      <td style="vertical-align: top; width: 270px;">#Games</td>
      <td style="vertical-align: top; width: 240px;">#Games</td>
    </tr>
    <tr>
      <td style="vertical-align: top; width: 242px;">Average_score</td>
      <td style="vertical-align: top; width: 270px;">Average_score</td>
      <td style="vertical-align: top; width: 240px;">Average_score</td>
    </tr>
    <tr>
      <td colspan="1" rowspan="5" style="vertical-align: top; width: 173px;">Row#2
        <br>
      </td>
      <td style="width: 242px;">Player#4 (picture)</td>
      <td style="width: 270px;">Player#5 (picture)</td>
      <td style="width: 240px;">Player#6 (picture)</td>
    </tr>
    <tr>
      <td style="vertical-align: top; width: 242px;">Name</td>
      <td style="vertical-align: top; width: 270px;">Name</td>
      <td style="vertical-align: top; width: 240px;">Name</td>
    </tr>
    <tr>
      <td style="vertical-align: top; width: 242px;">Age</td>
      <td style="vertical-align: top; width: 270px;">Age</td>
      <td style="vertical-align: top; width: 240px;">Age</td>
    </tr>
    <tr>
      <td style="vertical-align: top; width: 242px;">#Games</td>
      <td style="vertical-align: top; width: 270px;">#Games</td>
      <td style="vertical-align: top; width: 240px;">#Games</td>
    </tr>
    <tr>
      <td style="vertical-align: top; width: 242px;">Average_score</td>
      <td style="vertical-align: top; width: 270px;">Average_score</td>
      <td style="vertical-align: top; width: 240px;">Average_score</td>
    </tr>
  </tbody>
</table>

SQL查询:

<sql:query var="categoryPlayers" dataSource="jdbc/database">
    SELECT * FROM player WHERE category_id = ?
    <sql:param value="${pageContext.request.queryString}"/>
</sql:query>

然后在JSP中显示如下:

<c:forEach var="player" items="${categoryPlayers.rows}" varStatus="iter"></c:forEach>

最佳答案

您可以做的一件事是在单独的变量中生成每列的内容,然后在表中输出变量:

<%@ page import="java.util.ArrayList" %>
<html>
<head>
<title>Hello World</title>
</head>
<body>

<%
    ArrayList<String> list = new ArrayList<String>();
    list.add("player0");
    list.add("player1");

    String picture = "";
    String name = "";
    String age = "";
    String games = "";
    String avgSc = "";

    for (String s : list) {
        picture += "<td>" + s + "</td>";
        name += "<td>" + s + "</td>";
        age += "<td>" + s + "</td>";
        games += "<td>" + s + "</td>";
        avgSc += "<td>" + s + "</td>";
    }

%>

<table style="border: 1px none ; width: 438px;" border="1">
<tbody>
    <tr>
        <td>Player_picture</td>
        <%=picture%>
    </tr>
    <tr>
        <td style="vertical-align: top;">Player_Name</td>
        <%=name%>
    </tr>
    <tr>
        <td style="vertical-align: top;">Age</td>
        <%=age%>
    </tr>
    <tr>
        <td style="vertical-align: top;">#Games</td>
        <%=games%>
    </tr>
    <tr>
        <td style="vertical-align: top;">Average_score</td>
        <%=avgSc%>
    </tr>
</tbody>
</table>

</body>
</html>

关于html - 如何用Jsp和Mysql将列转换为行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29739827/

相关文章:

java - 如何将jsp页面中的javascript变量传递到另一个java文件?

java - 即使在删除工作目录后,Tomcat 也会重新编译旧版本的 JSP

javascript - 如何为具有不同音频源的多个点击图像添加播放/暂停切换

html - CSS:选择中的背景图像在 React 中不起作用

JavaScript - D3强制布局突出显示子树

php - 当同一页面上有两个相同的 Jquery 时发生冲突

mysql - 如何检查数据库是否存在于mysql程序中

MySQL查询将规范化数据转换为单行

php - 使用 mysql 和 php 在逗号分隔的值内搜索

java - 数据截断 : Incorrect datetime value: ''