我有以下代码:
if(hasRows($resultC)){
while($row = mysql_fetch_row($resultC)) {
$mescategories = '<span><a href="' . CalRoot .
'/index.php?com=searchresult&t=' . $row[0] .
'" rel="tag" class="eventMain">' . cOut($row[1]) . '</a></span> | ' ;
echo $mescategories;
}//end while
}//end if
渲染输出如下:
cat 1 | cat 2 | cat 3 | cat 4 |
如何阻止呈现最后一个|
字符。
答案 0 :(得分:5)
$catArray = array();
if(hasRows($resultC)){
while($row = mysql_fetch_row($resultC)){
array_push($catArray, '<span><a href="' . CalRoot . '/index.php?com=searchresult&t=' . $row[0] . '" rel="tag" class="eventMain">' . cOut($row[1]) . '</a></span>');
}//end while
echo implode('|', $catArray);
}//end if
答案 1 :(得分:3)
您可以使用mysql_num_rows($resultC)
计算行数,并在循环中设置计数器。或者,我这样做的方式如下:
if(hasRows($resultC)){
// Create an empty array
$links = array( );
while($row = mysql_fetch_row($resultC)){
// Add each text link to the array
$links[] = '<span><a href="' . CalRoot . '/index.php?com=searchresult&t=' . $row[0] . '" rel="tag" class="eventMain">' . cOut($row[1]) . '</a></span>' ;
}
// "Glue" the array back together using implode, with the separator between each.
echo implode(' | ', $links );
}
答案 2 :(得分:2)
$i = 0; //set before while loop
$i++; //inserted into while loop
if ($i != mysql_num_rows($resultC) ) { //inserted into while loop
$mescategories .= " | " ;
}
mysql_num_rows将告诉查询中有多少行,然后将追加除最后一行之外的每一行的管道字符。
编辑:我认为$ i ++应该在if语句之前,实际上。
答案 3 :(得分:2)
如何处理条件陈述。计算行的大小,如果$ count = $ maxcount则不回显“|”字符。
答案 4 :(得分:1)
我没有检查你的格式。刚刚添加了“第一个”变量。
if(hasRows($resultC)){
$first = true;
while($row = mysql_fetch_row($resultC)){
$mescategories = ' '.($first ? "":"|").' <span><a href="' . CalRoot . '/index.php?com=searchresult&t=' . $row[0] . '" rel="tag" class="eventMain">' . cOut($row[1]) . '</a></span> ' ;
echo $mescategories;
$first = false;
}//end while
}//end if
答案 5 :(得分:1)
试
if(hasRows($resultC)){
$i=0;
while($row = mysql_fetch_row($resultC)){
$spaceline =($i>0) ? '|' : '';
$mescategories = '<span><a href="' . CalRoot . '/index.php?com=searchresult&t=' . $row[0] . '" rel="tag" class="eventMain">' . cOut($row[1]) . '</a></span>' ;
$i++;
echo $spaceline.$mescategories;
}//end while
}//end if
答案 6 :(得分:0)
只做
echo substr($mescategories, 0, -1);
而不是echo $mescategories
你放了|在每个实例之后,然后删除最后一个char
否则,如果你需要知道你使用的数组的最后一个键:
end($array);
$lastKey = key($array);
但不要忘记在用它做事之前重置
reset($array);