Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tabela z danych znajdujących się w sql
Forum PHP.pl > Forum > PHP
niemilce
Witam

Mam pytanie bo nie mogę dojść błędu... Chciałbym aby na podstawie danych w jednej tabeli w SQL stworzyć tabelkę na stronie złożoną z 4 kolumn ( ilość kolumn uzależniona od limitu w zapytaniu do SQL), a wierszy to tyle ile będzie wymagać , która będzie automatycznie wypełniała się zdjęciami z pobranymi z SQL (linki zapisane w sql)
Po niżej prezentuje komendy jakie użyłem. Wyświetla mi tylko 1 wiersz, który zawiera 4 kolumny. Wpisów w tabeli jest dużo więcej, wstawiłem tyle aby było przynajmniej na 3 wiersze, ale niestety nie ma ich ;/
  1. <?php
  2. $pyt=mysql_query('SELECT * FROM galery'); //pobiera wszystko z bazy
  3. $ile=mysql_num_rows($pyt); //sprawdza ile w tabeli jest zdjęć
  4. $wiersze=ceil($ile/3); //i dzieli to przez 3
  5.  
  6. for ($a=0;$a<$wiersze;$a++) //otwiera pętlę, będzie się robiła tyle razy, ile jest wierszy
  7. {
  8. echo '<tr align=center>'; //wyświetla nowy wiersz
  9.    $b=$a*4; //będą pobierane z tabeli po 4 zdjęcia
  10.    $pytanie="SELECT * FROM galery LIMIT $b,4"; //zapytanie
  11.    $a=mysql_query($pytanie); //pobiera po 3 zdjęcia
  12.    while($row=mysql_fetch_array($a))
  13. {
  14. echo '<td>'; //otwiera nową komórkę
  15. echo '<a href='.$row['id'].'>';
  16. echo '<img src="'.$row['zdjecie'].'></a>';
  17. echo '</td>';
  18. }
  19. echo '</tr>';
  20. }
  21. echo '</table>';
  22.  
  23. ?>

Bardzo proszę o pomoc

POZDRAWIAM
patryczakowy
używasz zmiennej a do licznika a po pierwszym przejściu pętli nadpisujesz tą zmienną
  1. <?php
  2. $a=mysql_query($pytanie);
  3. ?>
Zyx
Zabierasz się za to z zupełnie złej strony. Pobierz najpierw wszystkie dane, a potem dopiero zabieraj się za ich wyświetlanie, bo w ten sposób do niczego nie dojdziesz.

1. Jak już koniecznie chcesz pobrać ilość czegoś w bazie, od tego jest funkcja COUNT():

Kod
SELECT COUNT(id) FROM tabela


2. Jak wykonujesz zapytanie SELECT * FROM tabela, to pobierz wszystkie dane i zapisz je do tablicy PHP. Przecież później możesz użyć funkcji sizeof() by je podliczyć. Bazy danych do tego nie potrzeba...

Gdy już masz dane, wtedy musisz obliczyć ilość wierszy (dzielenie takie, jakie zrobiłeś) oraz ilość elementów w ostatnim wierszu (reszta z dzielenia). Robisz trzy iteratory: dwa do pętli oraz jeden do tablicy. Zewnętrzna pętla idzie po wierszach, wewnętrzna po kolumnach, przy okazji zwiększasz wtedy iterator tablicy, by przesuwać się na kolejny element. Na samym końcu dodajesz jeszcze jeną pętlę, która uzupełnia ostatni wiersz pustymi komórkami (łatwo policzyć, ile tego jest, na podstawie już posiadanych danych).

Nawiasem mówiąc Open Power Template posiada gotową instrukcję do wyświetlania tego typu list, właśnie po to, by nie trzeba było się ręcznie z tym wszystkim męczyć.
niemilce
Dzięki za odpowiedzi zmieniłem zmienna $a i pomogło. Nawet nie zauważyłem. Niestety nie jestem orłem jesli chodzi o php. Czlowiek całe zycie się uczy smile.gif

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.