Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML] Problem z tabelą
Forum PHP.pl > Forum > Przedszkole
klapaucius
Witam. Mam tak głupi problem, no ale nie mogę w żaden sposób go rozwiązać. Więc mam mniej więcej taki kod:
  1. <table>
  2. <tr>
  3.  
  4. while(){
  5. <td>
  6. echo "obrazek";
  7. </td>
  8. }
  9.  
  10. </tr>
  11. </table>

I tutaj chodzi o to ze w tabeli wyświetlają mi się obrazki za pomocą pętli. Wyświetla się np 20 obrazków. Problem tkwi w tym, że chce, aby w jednej linii zostało wyswietlonych np 5 obrazków i nastepnie przechodziło do nastepnej linii. Jednak tak sie nie dzieje: obrazków choćby było 100 to i tak wszystkie są w jednym rzędzie i niechcą zejść niżej. Jak temu zaradzić?
Dziadzia
zrób pętle for dodatkowo for (a=0; a<5; a++) {i tutaj dajesz resztę to co miałeś}
thek
Sam mu każesz ta robić i się jeszcze dziwisz... A zauważyłeś, że wszystkie obrazki to osobne komórki ładowane do JEDNEGO i TEGO SAMEGO wiersza? Musisz po określonej ilości komórek zamykać wiersz i rozpoczynać następny.
Dziadzia
  1.  
  2. $obrazek=6;
  3.  
  4. echo '<table border="2">
  5.  
  6. <tr>';
  7.  
  8. if ($obrazek>5) {
  9.  
  10. for ($a=0;$a<$obrazek;$a++){
  11.  
  12. echo '<td> obrazek;
  13.  
  14. </td>';
  15.  
  16. }
  17.  
  18. }
  19.  
  20. else {
  21.  
  22. echo '<td>echo obrazek</td>';
  23. }
  24.  
  25.  
  26. echo ' </tr>
  27.  
  28.  
  29. </table>';
  30.  



może to Ci nasunie jakiś pomysł smile.gif jak nie to pisz PW. pozdrawiam.
klapaucius
Kurde siedze nad tym i siedze i mysle i za cholere nie moge tego pojąć. Przecież to jest tak proste a ja się tym tak męcze... Muszę z tym zrobić jeszcze dziś bo inaczej nie da mi to spokoju.
@edit
Dziadzia: nie kminie tego troche. Może jest jeszcze troche inny sposób? Zebym załapał bo na razie trudno mi z tym idzie. Może już przemęczony jestem bo od paru godzin kodzę ;/
Daiquiri
W "while" musisz dorzucić jeszcze mechanizm liczący obrazki. Jeżeli ich liczba dojdzie do 5 - tam ma nastąpić przejście do następnej linii/wiersza czy czego tam chcesz - dokładnie tak jak pisał Ci już Dziadzia. Ewentualnie zrobić to w jakikolwiek inny sposób, np.
  1. $i = 1;
  2. while() { //Twój while
  3. if ($i < 5) {
  4. //tutaj wyświetlą się 4 pierwsze obrazki
  5. } else {
  6. // tutaj wyświetli się 5 obrazek i np. znak nowej linii czy cokolwiek sobie życzysz
  7. $i = 1; //zerowanie licznika
  8. }
  9. ++$i;
  10. }


@Down
Problem można rozwiązać jakkolwiek, byleby prowadził do celu. Dałam inny przykład - może łatwiej będzie autorowi tematu zrozumieć.
Dziadzia
Czy jest inny? Nie wiem, pewnie tak, bo zawsze jest kilka wyjść smile.gif ale zaraz napiszę moje tylko zajmie mi to jeszcze chwilkę tongue.gif
klapaucius
Jeest chłopaki udało się! Zrobiłem podobnie jak pokazał Daiquiri. Teraz załapałem też o co biega u ciebie Dziadzia. Dzięki chłopaki za cierpliwość! Mam u Was dług!
Dziadzia
  1. $obrazek=54; //ilość obrazków
  2.  
  3. echo '<table border="2">
  4.  
  5. <tr>';
  6.  
  7. $ilosc = $obrazek/5; // dzielenie ilości obrazków przez 5
  8.  
  9. $reszta=$ilosc-$ilosc%$obrazek; //zapisanie reszty z dzielenia do zmiennej
  10.  
  11. if ($reszta<0.4) {
  12.  
  13. $ilosc=$ilosc-$reszta; //zaookrąglamy w dół bo zmieści się w tabeli
  14.  
  15.  
  16.  
  17. for ($x=0;$x<$ilosc;$x++) // petla która tworzy ilość wierszy = $ilość
  18. {
  19. echo '<tr>';
  20.  
  21. for ($y=0;$y<5;$y++) // pętla która tworzy kolumny
  22. {
  23. echo '<td>brazek</td>'; //pokazanie obrazka
  24. }
  25.  
  26. echo '</tr>';
  27.  
  28. }
  29.  
  30. }
  31.  
  32. elseif (($reszta>=0.5) AND ($reszta<=0.9)) {
  33.  
  34. $ilosc+=1-$reszta;
  35.  
  36. for ($x=0;$x<$ilosc;$x++)
  37. {
  38. echo '<tr>';
  39.  
  40. for ($y=0;$y<5;$y++)
  41. {
  42. echo '<td>brazek</td>';
  43. }
  44.  
  45. echo '</tr>';
  46.  
  47. }
  48.  
  49. }
  50.  
  51.  
  52. echo ' </tr>
  53.  
  54.  
  55. </table>';
  56.  




sprawdzone i działa smile.gif jak będziesz mieć jakieś pytania to pisz już prywatne wiadomości, szkoda zaśmiecać forum smile.gif pozdrawiam.

Cytat(klapaucius @ 5.04.2010, 23:02:52 ) *
Jeest chłopaki udało się! Zrobiłem podobnie jak pokazał Daiquiri. Teraz załapałem też o co biega u ciebie Dziadzia. Dzięki chłopaki za cierpliwość! Mam u Was dług!



W tym samym czasie dodaliśmy wiadomość biggrin.gif no to masz 2 rozwiązania smile.gif jak pomogłem, daj proszę "pomógł"
klapaucius
No właśnie, ale Twoja praca teraz nie poszła na marne bo teraz podpatrzyłem od ciebie trochę i zoptymalizowałem kod u mnie i przez to stał się nieco krótszy. Dzięki piękne za pomoc. Oczywiście leci "pomógł". Pozdrawiam!
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.