好的,我给了一个像这样的部分清单:
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"]
}
答案 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
排序