PHP-PostgreSQL将数据放入一个单元格(HTML表格)
我试图以下面显示的格式从数据库中回显数据;PHP-PostgreSQL将数据放入一个单元格(HTML表格)
|column-1|column-2|column-3|column-4|column-5| |--------|--------|--------|--------|--------|
|My Name | Date |Message | People |Phone #s|
| People |Phone #s|
| People |Phone #s|
| People |Phone #s|
| People |Phone #s|
这意味着,我从数据库中选择数据是这样的,在第4列的人,5接收到的消息(列3)从人上柱1。但根据我的代码来回应数据库中的数据,我为第4列和第5列中的每个其他人列出了一个新列,如下所示;
|column-1|column-2|column-3|column-4|column-5| |--------|--------|--------|--------|--------|
|My Name | Date |Message | People |Phone #s|
|My Name | Date |Message | People |Phone #s|
|My Name | Date |Message | People |Phone #s|
|My Name | Date |Message | People |Phone #s|
|My Name | Date |Message | People |Phone #s|
下面是我的php代码,生成表;
echo "<table id='table'>"; while($row=pg_fetch_assoc($result)){echo "<tr>";
echo "<td align='left' width='200'>" . $row['message_by'] . "</td>";
echo "<td align='left' width='200'>" . $row['message_date'] . "</td>";
echo "<td align='left' width='200'>" . $row['message_text'] . "</td>";
echo "<td align='left' width='200'>" . $row['phone_number'] . "</td>";
echo "<td align='left' width='200'>" . $row['recipient_name'] . "</td>";
echo "</tr>";}
echo "</table>";
所以,问题是如何能够我输出列4和5点的数据到单个单元或可替代地,回声出的数据到不同的小区而不必重复列1至3?
回答:
解决您的问题的典型方法是构建一个小型状态机,用于跟踪列值的变化。就你而言,看起来如果前三列中的任何值发生改变,那么你想打印一个完整的记录。否则,只需打印最后两列。下面使用的技巧是我们总是放下5 <td>
标签,但对于重复行,我们只将空字符串分配给这些单元格。
$col1 = NULL; $col2 = NULL;
$col3 = NULL;
echo "<table id='table'>";
while ($row = pg_fetch_assoc($result)) {
$text1 = '';
$text2 = '';
$text3 = '';
if ($row['message_by'] != $col1 ||
$row['message_date'] != $col2 ||
$row['message_text'] != $col3) {
$col1 = $row['message_by'];
$col2 = $row['message_date'];
$col3 = $row['message_text'];
$text1 = $col1;
$text2 = $col2;
$text3 = $col3;
}
echo "<tr>";
echo "<td align='left' width='200'>" . $text1 . "</td>";
echo "<td align='left' width='200'>" . $text2 . "</td>";
echo "<td align='left' width='200'>" . $text3 . "</td>";
echo "<td align='left' width='200'>" . $row['phone_number'] . "</td>";
echo "<td align='left' width='200'>" . $row['recipient_name'] . "</td>";
echo "</tr>";
}
echo "</table>";
重要:这个答案只会工作,才有意义,如果你的Postgres的查询排序利用ORDER BY
结果集。特别是,查询应该已经排序,首先排序三个消息列。
以上是 PHP-PostgreSQL将数据放入一个单元格(HTML表格) 的全部内容, 来源链接: utcz.com/qa/261641.html