Matti Maekitalo: PHP zählt nicht ganz bis 100?!

Beitrag lesen

Tach auch.

<h3>Fotos 2008</h3>
<table border="1";>
<tr>
<?php
$bilderanzahl = 0;
$a=0;
for($i=1; $i<=100; $i++)
{
$a++;
$bilderanzahl++;
if($a>5)
{
echo "</tr>";
$a=0;
$bilderanzahl--;
}
else
{
echo "<td>";
echo $bilderanzahl;
echo "</td>";
}
}
?>
</tr>
</table>

  
Mir scheint, dass du den "else"-Zweig auf jedenfall ausführen willst. Eingängiger wäre etwa sowas  
  
~~~php
$first = 1;  
for ($i = 0; $i < 100; ++$i) {  
   if ($i % 5 == 0) { // Zeile beenden und neue beginnen  
      if ($first) {  
         echo '</tr>';  
         $first = 0;  
      }  
      echo '<tr>';  
   }  
   echo "<td>$i</td>";  
}  
echo '</tr>';

(Kann sein, dass am Ende ein Zeilenumbruch ist, den du nicht haben willst. Der Trick, den ich dir zeigen will: mit der modulo-Abfrage ($i % 5 == 0) kannst du auf den zweiten Zähler verzichten, da $i % 5 automatisch bei jedem fünften Element 0 wird.

Im o.g. Code schreibt mir PHP schön die Zahlen in die Tabelle und macht auch immer einen Zeilenumbruch nach 5 Zahlen, doch die letzte eingetragene Zahl ist nicht 100 sonder 84 ?!

Zähl einfach mal ab. Kleiner Tipp: 100/(5+1) ist abgerundet 16 und 100-16 = 84.
Quizfrage: warum 5+1? Und warum zeigt er nur in den nicht-6.-Fällen etwas an? (Andersrum: was passiert denn ausschließlich in jedem 6. Fall?)

Bis die Tage,
Matti