1

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

$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 的文章标题。我想为目录制作一个字母栏,所以我使用这个:

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

4 回答 4

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;
}
于 2009-08-05T11:46:15.310 回答
1

改变这个:

echo $value;

对此:

$string .= $value;
于 2009-08-05T11:47:56.460 回答
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
于 2009-08-05T11:48:18.643 回答
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>';
}

这将使您不必复制和粘贴每个字母的代码。

于 2009-08-05T11:55:02.420 回答