打印数据库表并根据子颜色为父行着色

时间:2016-09-23 09:35:37

标签: php jquery html-table

PHP页面必须显示数据库表的内容。在另一个表中,我将使用相应的值来打印行并显示为孩子。

$result = pg_query($conn, "SELECT *,'SENT' as direction FROM table1 WHERE identification LIKE '%$identification%' AND expedition LIKE '$expedition' order by date DESC LIMIT '$limit' ");

在WHILE中,这将打印这种表:

while ($row = pg_fetch_row($result)) {

    $sql2 = pg_query($conn, " SELECT quantity FROM expedition WHERE identification='$row[2]' ");
    $row2 = pg_fetch_row($sql2);
    $color="white";
    if ($row2[0] == "-1") { $color="red";}
    if ($row2[0] == "1") { $color="green";}
    if ($row2[0] == "0") { $color="grey";}

echo "<tr bgcolor=\"$color\">
    <td><button class=\"btn btn-info\" type=\"button\" data-toggle=\"collapse\" data-target=\"#$row[2]\">+</button></td>
    <td>row[0]</td>
    <td>row[1]</td>
    <td>row[2]</td>
    <td>row[3]</td>
    <td>row[4]</td>
    <td>...and more</td>
    </tr>";

echo "<tr><td colspan=9><div style=\"background-color:$color\" id=\"$row[2]\" class=\"collapse\">$row2[0]</div></td></tr> ";

我正在使用bootstrap添加一个按钮,一旦点击,将打开一个内容为$sql2的隐藏行。查询我将在</tr>之后直接打印。

请注意第一个查询为row[],第二个查询为row2[]

问题:
如果第二个查询包含多于1个结果,并且在所有情况下识别都不是PK(因此可能会有更多),我无法为每一行打印其子项的颜色。

  1. 我需要扩展第二个查询以管理WHILE循环,以便通过标识提取其父的所有值。

  2. 如果,sql2包含-1或1或0,则必须相应地绘制父项及其本身

  3. IF,sql2包含不同的值,两者都必须涂成红色(作为错误)
  4. 显而易见的选择是在第一个WHILE的末尾移动SQL2,在这种情况下,我可以拥有包含我想要的所有记录的SQL2。 就像使用数组或FOR结构一样。

    虽然移动代码的事实不允许我打印所有行,因为html已经写好了。

    在这种情况下,我相信一旦写完这些值,我就需要Jquery来突出显示这些值。 我不知道Jquery的事情,我很感激任何建议或帮助。

    附上一张图片来显示我所取得的成果,绿色条只包含一个孩子作为上面的代码。原谅丑陋的界面! enter image description here

0 个答案:

没有答案