Tüm döngüye öğelerin ancak geçen birine kod uygulamak

3 Cevap php

Im bazı mysql sonuçları ile döngü ve, <span id=bottom></span> son satırın dışında her biri için bunu yapmanın en kolay yolu nedir eklemek gerekir?

I satırları saymak ve sonra bir sayaç kullanmak zorunda ve eğer / else olacak? Ya da daha kolay bir yöntem var mıdır?

3 Cevap

Böyle bir şey deneyin:

$result = mysql_query($sql);
$list = array();
while($row = mysql_fetch_assoc($result))
{
  $list[] = $row;
}
$lastItem = array_pop($list);
foreach($list as $item) {
  echo sprintf('<span id="bottom">%s</span>', $item['value']);
}
// do something with the last item..

Çok kısa değil, ama bu hile yapardı. Alternatif olarak size önerilen ne yapabilirdi:

$result = mysql_query($sql);
$num = mysql_num_rows($result);
for($i = 0; $i < $num-1; $i++) {
  $element = mysql_fetch_assoc($result);
  // echo here..
}
$item = mysql_fetch_assoc($result); // fetch last item..

Best wishes, Fabian

Ben bir PHP uzmanı değilim, ama bir dizinin her satırı koyabilirsiniz? Uzunluğunu bilmek ve dizi döngü can için bu şekilde.

Yazdırmadan önce peşin bir kayıt (: süreç önceden alınan kaydı veya tersi) getirme eğer işleniyor önce tüm verileri kopyalayarak önleyebilirsiniz

foreach( $pdo->query('SELECT x FROM foo') as $r) {
  if ( isset($row) ) {
    echo '<span>', $row['x'], '</span>';
  }
  $row = $r;
}
if ( isset($row) ) {
  echo $row['x'];
}