Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] wyswietlanie danych z bazy w grupie
Forum PHP.pl > Forum > Przedszkole
samba
Pobieram z bazy np. 10 rekordów, w jaki sposób umieścić je w kodzie np. w taki sposób:

  1. <div>
  2. <a>$daneZbazy1</a>
  3. <a>$daneZbazy2</a>
  4. <a>$daneZbazy3</a>
  5. </div>
  6.  
  7. <div>
  8. <a>$daneZbazy4</a>
  9. <a>$daneZbazy5</a>
  10. <a>$daneZbazy6</a>
  11. </div>


Chodzi o to, aby tworzony był DIV a w nim po trzy linki z rekordami i kolejny...
Riggs
W ten sposób najprościej obsłużysz to w kodzie php w pętli.
  1. for($i = 0; $i < $rowCount; $i++) {
  2. if($i%3 == 0) {
  3. echo '<div>';
  4. }
  5.  
  6. echo '<a>'.$dane.'</a'>
  7.  
  8. if($i%3 == 0) {
  9. echo '</div>';
  10. }
  11. }

Do zmiennej $rowCount oczywiście przypisz liczbę wierszy pobranych z bazy. Oczywiście rozwiązanie nie jest optymalne, musisz je trochę sam ulepszyć wink.gif
samba
właśnie mam z tym problem nadal... Zakładając że przed tymi div jest LI
Cytat
<li>
<div>
<a>$daneZbazy1</a>
<a>$daneZbazy1</a>
<a>$daneZbazy1</a>
</div>

<div>
<a>$daneZbazy2</a>
<a>$daneZbazy2</a>
<a>$daneZbazy2</a>
</div>

<div>
<a>$daneZbazy3</a>
<a>$daneZbazy3</a>
<a>$daneZbazy3</a>
</div>
</li>


Każdy LI musi mieć w sobie 3 div, jak rekordów jest więcej to dodaje do kolejnego LI 3 div itd.
samba
czy ktoś mógłby mi pomóc jak uzyskać taki efekt jak wyżej z for? A może trzeba zrobić to inaczej?
Gość
up
Gość
up2
b4rt3kk
Co mają znaczyć te up i up2?
Gość
aby temat nie zaginął w akcji.
Jinbe
Cytat(samba @ 4.09.2012, 10:59:27 ) *
czy ktoś mógłby mi pomóc jak uzyskać taki efekt jak wyżej z for? A może trzeba zrobić to inaczej?


Masz już podane, jak wstawić z pomocą pętli for znaczniki div (z lekkim błędem, o ile widzę, ale kierunek jest dobry). Oprócz tego chcesz wstawić znaczniki li dla każdych trzech znaczników div, więc możesz spokojnie użyć tej samej pętli dopisując tam sprawdzenie, czy licznik $i jest podzielny przez... 9 wink.gif
Oczywiście musisz zwrócić uwagę na znaczniki końcowe, gdyż niekoniecznie zawsze będziesz miał odpowiednią liczbę grup div, żeby do końca wypełnić znaczniki li, więc ostatni możesz musieć zamknąć ręcznie. No i w podanej przez Riggsa pętli musisz zmienić lekko warunki, gdyż póki co każdy div zawiera tylko jeden link, a chciałbyś trzy. Ale to już zadanie domowe dla Ciebie wink.gif
I zaznaczam, że takie "up'owanie" tematu nie jest mile widziane. Jak ktoś będzie chciał, to odpisze - nawet jeśli temat znajdzie się na drugiej stronie. A jeśli nie, to Twój temat nie jest ważniejszy od innych, żeby ciągle go podbijać.
Gość
Właśnie nie wiem jak napisać te warunki aby był wstawiany LI, i 3 DIV do niego... Jak sprawdzić czy licznik $i jest podzielny przez 9? I dlaczego tak?

  1. for($i = 0; $i < 10; ++$i)
  2. {
  3.  
  4. if($i==1 OR ?)
  5. {
  6. echo '<li>';
  7. }
  8.  
  9. if($i%3 == 0)
  10. {
  11. echo '<div>';
  12. }
  13.  
  14. echo '<a>'.$dane.'</a'>
  15.  
  16. if($i%3 == 0)
  17. {
  18. echo '</div>';
  19. }
  20.  
  21. }


Powinna być jeszcze jedna pętla?
Jinbe
Cytat(Gość @ 5.09.2012, 14:43:44 ) *
Właśnie nie wiem jak napisać te warunki aby był wstawiany LI, i 3 DIV do niego... Jak sprawdzić czy licznik $i jest podzielny przez 9? I dlaczego tak?
Powinna być jeszcze jedna pętla?

A jak sprawdzasz dotąd w zacytowanym przez Ciebie kodzie, czy $i jest podzielne przez 3? Wiesz, do czego służy konstrukcja $i%3? Jeśli nie, poczytaj sobie w manualu.
Moim zdaniem lepiej zrobić to w jednej pętli. Zmień sobie ją najpierw tak, żeby robiła tylko jeden przebieg. Zobacz, jaki zwraca wynik. Zwiększ przebieg o jeden i obserwuj wyniki aż do licznika 10. Spróbuj zrozumieć, jak działa, wprowadzaj zmiany, ale po trochu smile.gif
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.