我首先得到了这段代码:
foreach( $results as $row ) {
if ($row['class'] <>$class) {
echo "<tr><td><p class=\"boldtitle\">".$row['class']."</p></td></tr>";
}
echo "
<tr>
<td><a href=\"".$row['hyperlink']."\">".$row['title']."</a></td>
</tr>
";
$class = $row['class'];
}
}
工作正常,但我希望当".$row['hyperlink']."
等于"NULL"
时,HTML超链接标记会消失。
为此,我写了这样的代码:
$class = $row['class'];
foreach( $results as $row ) {
if ($row['class'] <>$class) {
echo "<tr><td><p class=\"boldtitle\">".$row['class']."</p></td></tr>";
}
if ($row['hyperlink'] != "NULL") {
echo "<tr><td><a href=\"".$row['hyperlink']."\">".$row['title']."</a></td></tr>";
} else {
echo "<tr><td>".$row['title']."</td></tr>";
}
}
}
?>
根据需要设置或删除超链接,但分组功能也丢失了。
而不是:
**Cleaner**
David
Phil
Gustav
**Farmer**
Lynn
Peter
**Mason**
Brion
Alf
我明白了:
**Cleaner**
David
**Cleaner**
Phil
**Cleaner**
Gustav
**Farmer**
Lynn
**Farmer**
Peter
**Mason**
Brion
**Mason**
Alf
有人知道我做错了什么吗?哪里是我的错?
答案 0 :(得分:1)
在第二段代码中,您将$class = $row['class'];
移到了foreach循环之外。这意味着它最初将设置为null(因为在循环之前$row['class']
未定义),因此$row['class'] <>$class
将始终为true。将它移回循环内部,它应该像以前一样工作。
$class = null; // initialize $class to null
foreach( $results as $row ) {
if ($row['class'] <>$class) {
echo "<tr><td><p class=\"boldtitle\">".$row['class']."</p></td></tr>";
}
if ($row['hyperlink'] != "NULL") {
echo "<tr><td><a href=\"".$row['hyperlink']."\">".$row['title']."</a></td></tr>";
} else {
echo "<tr><td>".$row['title']."</td></tr>";
}
$class = $row['class']; // reset $class to the current value here
}