将循环结果保存为字符串

时间:2009-08-05 11:41:55

标签: php mysql string alphabetized

是否可以将循环结果保存为字符串?

$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。

非常感谢任何有关此问题的建议或更好的方法。

4 个答案:

答案 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>';
}

这样可以节省您复制和粘贴每个字母的代码的费用。