Сохранить результат цикла в строку - PullRequest
1 голос
/ 05 августа 2009

Можно ли сохранить результаты цикла в строку?

$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

Но я не знаю, как получить эту строку $ из цикла для второй части кода.

Любые предложения или лучший подход к этой проблеме с благодарностью.

Ответы [ 4 ]

1 голос
/ 05 августа 2009

Изменить это:

echo $value;

к этому:

$string .= $value;
1 голос
/ 05 августа 2009

Я не уверен, что именно вы хотите ... обновите ваши примеры, чтобы показать, что у вас есть и что вы хотите, чтобы результат был.

Вы можете сохранить список значений, используя 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;
}
0 голосов
/ 05 августа 2009

В дополнение к тому, что сказали все остальные, вы, вероятно, захотите использовать цикл для отображения вашего алфавитного меню:

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

Это избавит вас от необходимости копировать и вставлять код для каждой буквы.

0 голосов
/ 05 августа 2009
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
...