java - 根据结果​​将输出数据格式化为表格

标签 java mysql if-statement

想通了,下面的解决方案!

我有一个 HTML 表格,该表格由数据库中的数据填充,该数据库具有两个使用以下结构的表格:

Table 1:
------------------------------
|id|data|other_data|more_data|
------------------------------

Table 2:
--------------------------------
|id|entryId|fileType|other_data|
--------------------------------

我以类似的方式加入这两个表:

SELECT * FROM table1 LEFT JOIN table2 ON table2.entryId = table1.id

返回示例:

------------------------------------------------------------
|id|data|other_data|more_data|id|entryId|fileType|other_data|
-------------------------------------------------------------
|1 |....|..........|.........|1| 1      |file1   |..........|
|1 |....|..........|.........|2| 1      |file2   |..........|
|2 |....|..........|.........|3| 2      |file1   |..........|
|2 |....|..........|.........|4| 2      |file2   |..........|
|3 |....|..........|.........|5| 3      |file1   |..........|
|4 |....|..........|.........|6| 4      |file2   |..........|

对于每种情况,我都希望得到至少一个结果,通常是两个,我希望根据 fileType 字段对其进行排序。 fileType 可以是 file1file2

<table>
<tr>
<td>file1 data here</td>
<td>file 2 data here</td>
</tr>
</table>

如果结果中没有文件 1 或文件 2,则插入破折号 (-),但始终保持该表的结构以相同的方式和相同的顺序排列。我怎样才能做到这一点?我尝试了一个简单的 if/else 构造,但我的逻辑是错误的,并且返回的数据乱序;我在思考可行的解决方案时遇到了麻烦。

while(docs.next) {

if(docs.getString("fileType").equals("file1")) {
        .....<td>file 1 data</td>
    }

else if(docs.getString("fileType").equals("file2")){
        .....<td>file 2 data</td>
    }
}

一如既往,非常感谢您的帮助!

**明白了,谢谢!解决方案:

我将逻辑分成两个查询,然后使用您的建议: - 第一个查询从 table1 中获取数据,建立 HTML 表格 - 设置两个变量(fileData1,fileData2)为空 - 第二个查询从 table2 中获取数据,循环遍历结果以查找匹配项,如果结果存在则更改实际值 - 循环后,打印带有结果的表格单元格**

最佳答案

如果我没理解错的话,你需要同时打印<td>不管怎样。你的if条件限制打印<td> - 它将打印 <td>仅当满足给定条件时。所以你需要改变它。相反,您需要这样做 - 通读 docs , 得到 fileType .如果它是 file1,则将它的值赋给一个初始化为 null 的变量。如果是 file2 ,则将其值分配给初始化为 null 的变量。然后测试该变量并打印“-”或每个案例的内容。

假设变量 file1Datafile2Datadocs 上的每次迭代分别表示来自 file1 和 file2 的字符串数据,

while(docs.next) {
   String file1Data = null;
   String file2Data = null;
   if(docs.getString("fileType").equals("file1")) {
   // assign value for fiel1Data here
   } 
   if(docs.getString("fileType").equals("file2")) {
   // assign value for fiel2Data here
   }
   System.out.println("<tr>");
   System.out.println("<td>" + (file1Data == null || file1Data.equals("")?"-" : file1Data) + "</td>");
   System.out.println("<td>" + (file2Data == null || file2Data.equals("")?"-" : file2Data) + "</td>");
   System.out.println("</tr>");
}

关于java - 根据结果​​将输出数据格式化为表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10044021/

相关文章:

Excel if then 语句

java - 选择一行时的 JTable 简单代码?

mysql - 在大型 MySQL 表中查找记录的最佳方法是什么?

ruby-on-rails - Rails 使用 IF 和 ELSE 语句隐藏基于页面的 div

mysql - 如何使用Mysql的IF EXIST进行验证?

mysql - 数据库结构/定义和未定义的字段值

Java 检查邮件实验室

java - Java中如何通过指针运算访问数组元素

java - 添加对设置屏幕 android 的支持

java - java游戏的gui框架