Witam mam taki malutki problem, być może rozwiązanie może okazać się banalne, ale siedzę dziś już cały dzień przy komputerze i być może zmęczenie nie pozwala mi wymyślić sensownego rozwiązania ;)
A więc tak mam sobie bazę danych w, której jest np. 10 rekordów.
Napisałem sobie pentelkę, która pobiera dane z tej bazy danych i wyświetla je.
Tutaj jest fragment kodu - najistotniejszy
for ($i = 0; $i < mysql_num_rows($gallery); $i++)
{
$row = mysql_fetch_array($gallery);
echo "<td><a href='../photos/".$row['link']."'> <img src='../photos/".$row['link']."' width='200px' height='200px' border='1'/></a><br /><a href='index_pa.php?go=gallery&gallery_name=".$gallery_name."&delete=".$row['id']."'>Usun</a></td>\n";
if ($i>1 && $i % 3 == 0)
{
echo "</tr>\n<tr>\n";
}
}
Wszystko niby pięknie, ładnie działa, ale problem pojawia się przy tej ostatniej instrukcji if.
Mianowicie chciałbym aby po wczytaniu 3 rekordów nastąpiło przejście do następnego wiersza. I tak w kółko - wyświetla 3 rekordy, następna linia, kolejne 3 rekordy, następna linia, itd
Dałem taki warunek, że po każdym wczytaniu przez pętlę rekordu do $i dodawane jest 1 ($i++), jeśli zmienna osiąga wartość większą niż 3 i w dodatku przy dzieleniu przez 3 reszta wynosi 0 następuje przejście do następnego wiersza. Dla mnie wydaje się to logiczne.
Bo zauważmy:
Gdy w tabeli znajdują się 3 rekordy zmienna $i przyjmuje wartość 3 ----> 3/3 =1 r=0 przejście do następnego wiersza bo warunek spełniony
Gdy w tabeli znajduje się 6 rekordów zmienna $i przyjmuje wartość 6 —> 6/3 = 2 r=0 przejście do następnego wiersza bo warunek spełniony
Gdy w tabeli znajduje się 9 rekordów zmienna $i przyjmuje wartość 9 —> 9/3 = 3 r=0 przejście do następnego wiersza bo warunek spełniony
Gdy w tabeli znajduje się 10 rekordów zmienna przyjmuje wartość 10 —> 10/3 = 3,(33) r!=0 warunek niespełniony
Teoretycznie niby to działa, tylko jest jedno małe ale, dopiero po wyświetleniu 4(nie 3 rekordów!) następuje przejście do następnego wiersza. Gdzie tu jest problem?