Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dane w dynamicznej tabelce, petle
Forum PHP.pl > Forum > Przedszkole
pjamalia
Cześć wszystkim,

Piszę aktualnie mały prosty skrypcik, no prosty jak prosty. Co ma realizować, ma on wyświetlać dane z datasetu po cztery w każdym wierszu.
Obecnie skrypt przy tej łopatologicznej postaci gubi mi wartość 5 i 15 i 20. Nie mogę już dojść sam dlaczego. Czy mogę prosić o pomoc?questionmark.gifquestionmark.gif
  1. <?php
  2.  
  3. $ar = array("raz","dwa","trzy","cztery","piec","szesc","siedem","osiem","dziewiec","dziesiec",
  4. "11","12","13","14","15","16","17","18","19","20");
  5.  
  6. $data_count = sizeof($ar); // ilośc danych
  7. $row = 4; // ilośc wierszy
  8.  
  9.  
  10. $tmpcol = 0;
  11.  
  12. $tmp_name = null;
  13. $row_counter = 0;
  14. $row_bool = true;
  15. $col_counter = 0;
  16.  
  17. echo '<table border="1">';
  18.  
  19. if($row_bool)
  20. {
  21. echo '<tr>';
  22. }
  23. for($icol = 0; $icol < $data_count; $icol++)
  24. {
  25.  
  26. $tmpcol = $icol;
  27.  
  28. if($tmpcol == 4 OR $tmpcol == 9 OR $tmpcol == 14 OR $tmpcol == 19) // jeżeli limit kolumn w wierszu to twórz wiersz
  29. {
  30. echo '<tr>';
  31. }
  32. else
  33. {
  34. echo '<td>';
  35. /* tabela wyświetlająca dane*/
  36. echo '<table border="1">';
  37. echo '<tr>';
  38. echo '<td>';
  39. echo $ar[$icol];
  40. echo '</td>';
  41. echo '</tr>';
  42.  
  43. echo '</table>';
  44. echo '</td>';
  45. }
  46. $tmp_name = $ar[$icol];
  47.  
  48. if($tmpcol == 4 OR $tmpcol == 9 OR $tmpcol == 14 OR $tmpcol == 19)
  49. {
  50. echo '</tr>';
  51. }
  52.  
  53. }
  54. if($row_bool)
  55. {
  56. echo '</tr>';
  57. }
  58.  
  59. echo '</table>';
  60.  
  61.  
  62. ?>


nospor
Nie wiesz czemu ci gubi?

if($tmpcol == 4 OR $tmpcol == 9 OR $tmpcol == 14 OR $tmpcol == 19) // jeżeli limit kolumn w wierszu to twórz wiersz
{
echo '<tr>';
}
No przecież tutaj. Tutaj wyświetlasz tylko TR olewając zupełnie dane z tego przebiegu pętli - no to ci gubi. Logiczne.
maniana
Najprościej to było by tak:
  1. <?php
  2. $ar = array("raz","dwa","trzy","cztery","piec","szesc","siedem","osiem","dziewiec","dziesiec","11","12","13","14","15","16","17","18","19","20");
  3.  
  4. echo '<table border="1"><tr>';
  5. $ile = count($ar);
  6. $licz = 0;
  7. for($i=0;$i<$ile;$i++){
  8. echo '<td>'.$ar[$i].'</td>';
  9. if(++$licz==4) {
  10. $licz = 0;
  11. echo '</tr><tr>';
  12. }
  13. }
  14. echo '</tr></table>';
  15. ?>

Zamiast dodatkowej zmiennej można też się pobawić resztą z dzielenia:
Cytat
if(!(($i+1)%4)){...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.