PHP Döngü son satırı bulmak ise

3 Cevap
$sql = mysql_query("SELECT * FROM comments WHERE user = 1");

$i = 1;
while ($row = mysql_fetch_assoc($sql)) {

<p>$i. <?php echo $row['comment'] ?></p>

<div class="border"></div>

$i++;
}

Ben son yorumun altında çıktı <div class="border"></div> değil nasıl yapabilirim?

3 Cevap

$sql = mysql_query("SELECT * FROM comments WHERE user = 1");
$number = mysql_num_rows($sql);
$i = 1;
while ($row = mysql_fetch_assoc($sql)) {

   echo '<p>' . $i . $row['comment'] . '</p>';

   if ($i < $number)
   {
       echo '<div class="border"></div>';
   }

   $i ++;
}

WebDevHobo önerisini kullanma.

$number = mysql_num_rows($sql);

Bu iade edilecektir kaç satır anlatacağım. Buna dayanarak, emin son üzerinde DIV olmadığını yapabilirsiniz.

$rslt = mysql_query("SELECT * FROM comments WHERE user = 1");

$i = 1;
if ($row = mysql_fetch_assoc($rslt)) {
  echo '<p>'. $i . ' '. $row['comment'] . '</p>';
  $i++;
  while ($row = mysql_fetch_assoc($rslt)){
    echo '<div class="border"></div>';
    echo '<p>'. $i . ' ' . $row['comment'] . '</p>';
    $i++;
  } // end while
} // end if

Avoids needing to know the number of rows. Executes the if statement only once instead of each loop. The HTML and php were kind of messy and inconsistent, so I just assumed the whole block was within php tags. Obviously, open and close the php tag as you see fit.

Bu büyük ölçüde bir tarz konudur, ama sık sık ve yaygın olarak yürütülecek sql deyimi dize tutmak için kullanılan değişken adı $ sql, biraz yanıltıcı olduğuna karar verdi, ben bu nedenle $ rslt için değişken adını değiştirdi.