Bir dize döngü sonucu kaydetmek

4 Cevap php

Bir dize döngü sonuçları kaydetmek mümkün mü?

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

Yukarıdaki kod etiketi insan_kaynakları ile makalelerin başlıkları çıktılar. Ben bir katalog için bir alphabar yapmak istiyorum, bu yüzden bu kullanıyorum:

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

Ama kod ikinci bölümü için döngü o $ dize almak için nasıl bilmiyorum.

Herhangi bir öneri veya bu soruna daha iyi bir yaklaşım büyük ölçüde takdir edilmektedir.

4 Cevap

Bu değiştirin:

echo $value;

Bunun için:

$string .= $value;

Ben tam olarak ne istediğinizi emin değilim ... Eğer sonuç olmak istiyorum ne var ne göstermek için örnekler güncelleyin.

Bir kullanarak değerleri listesini saklayabilirsiniz array:

$list = array();
for (...) {
    /*
    Some code here...
    */
    // Add the current string to the list.
    $list[] = $string;
}

Eğer sadece uzun bir dize isterseniz ekleyebilirsiniz:

$all = "";
for (...) {
    /*
    Some code here...
    */
    // Add the current string to a string with all the strings concatenated.
    $all .= $string;
}
while ($fields = db_fetch_array($results)) {
     foreach($fields as $key => $value) {
      echo $value;
     }
}

denemek

$result = "";
while ($fields = db_fetch_array($results)) {
     foreach($fields as $key => $value) {
      $result = $result . $value;
     }
}
restun $result

Herkes ne söylediğini ek olarak, büyük olasılıkla alfabetik menüsünü görüntülemek için bir döngü kullanmak isteyeceksiniz:

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

Bu, her harf için kodu kopyalayıp yapıştırmak zorunda kurtaracak.