Php 每次行值更改时插入其他HTML
我想从一个SQL查询中打印出“多个表”。其逻辑是,每次使用与前一行不同的新值打印一行,以创建HTML格式的新表 也许是这样的Php 每次行值更改时插入其他HTML,php,sql,sql-server,Php,Sql,Sql Server,我想从一个SQL查询中打印出“多个表”。其逻辑是,每次使用与前一行不同的新值打印一行,以创建HTML格式的新表 也许是这样的 This stuff is Assigned to JOE ----------------------------------- Assigned to |Column1 |Column2 ----------------------------------- Joe |1 |A Joe |2 |B
This stuff is Assigned to JOE
-----------------------------------
Assigned to |Column1 |Column2
-----------------------------------
Joe |1 |A
Joe |2 |B
Joe |3 |C
This stuff is Assigned to Adam
-----------------------------------
Assigned to |Column1 |Column2
-----------------------------------
Adam |1 |A
Adam |2 |B
This stuff is Assigned to Patrick
-----------------------------------
Assigned to |Column1 |Column2
-----------------------------------
Patrick |1 |A
Patrick |2 |B
Patrick |3 |C
我对我的代码进行了测试运行,这是一个基本的PHP If语句,它试图检测前一行的变量是否没有更改。如果有,那么插入一些代码
$tsql = "
SELECT
id
AssignedTo
Column1
Column2
FROM somewhere
ORDER BY AssignedTo ASC";
/* Execute the query. */
$stmt = sqlsrv_query( $conn, $tsql);
/* I will set this variable to whatever for now */
$AssignedTo = '';
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC))
{
If ($AssignedTo != $row[1])
{
$AssignedTo = $row[1];
echo "<h1>This is assigned to ".$AssignedTo."</h1>";
echo "<table><tr>headings</tr>";
}
echo "<tr>bla bla</tr>";
}
我不明白为什么我的“This stuff is assigned to”循环在表的所有其他行之上,即使if语句在while中
谢谢一旦开始,您从未关闭过您的桌子
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC))
{
If ($AssignedTo != $row[1])
{
if ($AssignedTo != '') {
echo '</table>';
}
$AssignedTo = $row[1];
echo "<h1>This is assigned to ".$AssignedTo."</h1>";
echo "<table><tr>headings</tr>";
}
echo "<tr>bla bla</tr>";
}
while($row=sqlsrv\u fetch\u数组($stmt,sqlsrv\u fetch\u NUMERIC))
{
如果($AssignedTo!=$row[1])
{
如果($AssignedTo!=''){
回声';
}
$AssignedTo=$row[1];
echo“这是分配给“$AssignedTo.”;
呼应“标题”;
}
呼应“布拉布拉”;
}
在开始新的代码之前,没有
。在您的if中,查看$AssignedTo
是否为空,如果不是空,请在开始下一个之前添加
。好主意!我会把这个加进去。仍然不能解决实际行在所有这些“分配给”人员循环之后的问题。关闭表应该可以解决这个问题。当你把一堆表叠起来而不关闭它们时,行的结尾是很不可预测的:)让我试试,我从来没有想到过这个!
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC))
{
If ($AssignedTo != $row[1])
{
if ($AssignedTo != '') {
echo '</table>';
}
$AssignedTo = $row[1];
echo "<h1>This is assigned to ".$AssignedTo."</h1>";
echo "<table><tr>headings</tr>";
}
echo "<tr>bla bla</tr>";
}