Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Dane w dynamicznej tabelce, petle
pjamalia
post 11.04.2012, 05:05:48
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 0
Dołączył: 1.11.2009

Ostrzeżenie: (0%)
-----


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. ?>




Ten post edytował pjamalia 11.04.2012, 05:06:24
Go to the top of the page
+Quote Post
nospor
post 11.04.2012, 07:13:01
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
maniana
post 11.04.2012, 14:34:09
Post #3





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 18.05.2007

Ostrzeżenie: (0%)
-----


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)){...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 5.07.2025 - 23:05