文本注入显示

时间:2012-09-06 16:23:51

标签: php sql-server web-applications web

好的,我给了一个像这样的部分清单:

PartID    CatID    PartName
0             1           Part 1
1             2           Part 2
2             1           Part 3
3             3           Part 4
4             2           Part 5
5             2           Part 6

我正在使用PHP来提取。如何在CatID的每次更改时注入一些文本,而不必运行多个循环?

所以在页面上,我可以显示它:

"BLURB OF TEXT"
Part 1
Part 3
"BLURB OF TEXT"
Part 2
Part 5
Part 6
"BLURB OF TEXT"
Part 4

到目前为止,这是代码。我考虑过将一个赋值给= $ row [“CatID”],并检查变量是否= = CatID,但它始终是== ......

while($row = sqlsrv_fetch_array($qry, SQLSRV_FETCH_ASSOC)) {
    echo $row["PartName"]
}

2 个答案:

答案 0 :(得分:2)

将ID放在循环外部的变量中。这样你就可以检查以前的ID和当前的ID。如果当前的那个与最后一个不同,则回显一些文字:

$LastID = 0;
while($row = sqlsrv_fetch_array($qry, SQLSRV_FETCH_ASSOC)) {
    echo $row["PartName"];
    if($row["CatID"] > $LastID)
    {
        // ID changed!
        echo "Insert Text!";
    }
    $LastID = $row["CatID"];
}

当然,这假设数据按CatID的升序排序,因为您想要显示的结果。

答案 1 :(得分:1)

我的逻辑向后......格雷,数字我在请求帮助后立即弄清楚......

                if($cCat == $row["catID"]){
                    //echo 'nothing here';
                }else{
                    echo '<a name="' . $row["PartCategory"] . '"></a>';
                    echo $this->GetPartCategories();
                    $cCat = $row["catID"];
                }

是有效的,而且在while语句之上是$ cCat ='';

我在尝试

                if(!$cCat == $row["catID"]){
                    echo '<a name="' . $row["PartCategory"] . '"></a>';
                    echo $this->GetPartCategories();
                    $cCat = $row["catID"];
                }

由于某种原因无效。

P.S。已经在我的查询中有一个订单。它按catID,partSortOrder,partName

排序