是否可以将循环结果保存为字符串?
$sql = "SELECT SUBSTR(a.`title`, 1,1) FROM articles a WHERE a.`tag` = 'human_resources'";
$results = db_query($sql);
while ($fields = db_fetch_array($results)) {
foreach($fields as $key => $value) {
echo $value;
}
}
上面的代码输出带有标签human_resources的文章标题。我想为目录制作一个alphabar,所以我正在使用它:
if(stripos($string, "A") !== false) {
echo ('<a href="http://www.mysite.com/articles/A">A</a>');
}
else echo '<span class="inactive">A</span>';
if(stripos($string, "B") !== false) {
echo ('<a href="http://www.mysite.com/articles/B">B</a>');
}
else echo '<span class="inactive">B</span>';
...etc
但我不知道如何从代码的第二部分循环中获取$ string。
非常感谢任何有关此问题的建议或更好的方法。
答案 0 :(得分:1)
我不确定你想要什么...更新你的例子来展示你拥有的和你想要的结果。
您可以使用array
$list = array();
for (...) {
/*
Some code here...
*/
// Add the current string to the list.
$list[] = $string;
}
如果您只想要一个长字符串,可以附加:
$all = "";
for (...) {
/*
Some code here...
*/
// Add the current string to a string with all the strings concatenated.
$all .= $string;
}
答案 1 :(得分:1)
改变这个:
echo $value;
到此:
$string .= $value;
答案 2 :(得分:0)
while ($fields = db_fetch_array($results)) {
foreach($fields as $key => $value) {
echo $value;
}
}
试
$result = "";
while ($fields = db_fetch_array($results)) {
foreach($fields as $key => $value) {
$result = $result . $value;
}
}
restun $result
答案 3 :(得分:0)
除了其他人所说的内容之外,您可能还想使用循环来显示字母菜单:
for ($i = 65; $i < 91; $i++) {
$letter = chr($i);
if(stripos($string, $letter) !== false) {
echo ('<a href="http://www.mysite.com/articles/'.$letter.'">'.$letter.'</a>');
}
else echo '<span class="inactive">'.$letter.'</span>';
}
这样可以节省您复制和粘贴每个字母的代码的费用。