Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tabela z danych znajdujących się w sql
niemilce
post 27.04.2009, 11:44:50
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 27.04.2009

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


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

Ten post edytował niemilce 27.04.2009, 11:46:09
Go to the top of the page
+Quote Post
patryczakowy
post 27.04.2009, 12:03:24
Post #2





Grupa: Zarejestrowani
Postów: 420
Pomógł: 44
Dołączył: 22.10.2008

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


używasz zmiennej a do licznika a po pierwszym przejściu pętli nadpisujesz tą zmienną
  1. <?php
  2. $a=mysql_query($pytanie);
  3. ?>


--------------------
Sztuką jest widzieć to czego nie widać.
Go to the top of the page
+Quote Post
Zyx
post 27.04.2009, 12:06:20
Post #3





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


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


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
niemilce
post 27.04.2009, 12:29:03
Post #4





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 27.04.2009

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


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
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: 24.07.2025 - 19:06