2009-08-05 2 views
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. Я хочу сделать 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 

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

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

ответ

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

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