Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Podzielenie tabeli.
szczalpi
post 24.08.2009, 20:43:59
Post #1





Grupa: Zarejestrowani
Postów: 336
Pomógł: 0
Dołączył: 25.10.2006

Ostrzeżenie: (10%)
X----


Witam.
Mam maly problem. Otoz to. W bazie danych mam 200 wpisow, ale chcialbym aby wyswietlaly w dwoch lub trzech rzedach. W jaki sposob nalezy to zrobic? Prosze o pomoc.
Pozdrawiam.


--------------------
Nieregulaminowa stopka usunieta
Go to the top of the page
+Quote Post
ewaslawek5
post 24.08.2009, 20:51:40
Post #2





Grupa: Zarejestrowani
Postów: 89
Pomógł: 2
Dołączył: 5.11.2007

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


Za malo dałeś danych, w jakiej bazie - podaj jej budowę i napisz konkretnie co byś chciał uzyskać ?


--------------------
Dobro popłaca - zawsze !
Go to the top of the page
+Quote Post
szczalpi
post 24.08.2009, 20:57:03
Post #3





Grupa: Zarejestrowani
Postów: 336
Pomógł: 0
Dołączył: 25.10.2006

Ostrzeżenie: (10%)
X----


Otoz to w bazie danych "mysql" wpisanych mam okolo 200 linkow. Chcialbym, aby one zostaly wyswietlone w rzedach za pomoca <td>jeden rzad</td><td>drugi rzad</td>.
Zapytanie to wyswietlania w jednym rzedzie potrafie zrobic. Tylko problem jest, aby wyswieltic je w dwoch rzedach podzielone na rowno.


--------------------
Nieregulaminowa stopka usunieta
Go to the top of the page
+Quote Post
thek
post 24.08.2009, 21:40:57
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Wysławiaj się dokładniej, bo piszesz o rzędach a z postu ewidentnie wynika, że chcesz robić X kolumn z wynikami... w schemacie:
| wynik 1 | wynik2 | wynik3 |
| wynik 4 | wynik5 | wynik6 |
| wynik 7 | wynik8 | wynik9 |

Przepraszam. Ja wiem że to dział Przedszkole, ale czy to takie trudne pomyśleć i wpaść na pomysł by robić modulo 2 lub modulo 3 (czy ile tam chcesz kolumn z linkami) na numerze rekordu, a potem sprawdzić ile ewentualnie dodatkowych pustych komórek wstawić do ostatniego wiersza? Albo jeszcze banalniej wywal tabele, policz ile masz rekordów, podziel przez liczbę kolumn zaokrągliwszy w górę, walnij do DIVów i każdemu DIVowi nadaj szerokość 1/liczba_kolumn. Nie będę pisywał kodu bo to już chyba sam potrafisz zrobić.
Jak widzisz, ja podałem Ci z głowy 2 sposoby. A można po chwili myślenia pewnie i więcej wymyślić smile.gif
Aha... przypadek z Div da Ci w rezultacie:

| wynik 1 | wynik4 | wynik7 |
| wynik 2 | wynik5 | wynik8 |
| wynik 3 | wynik6 | wynik9 |


Ten post edytował thek 24.08.2009, 21:44:28


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
szczalpi
post 24.08.2009, 21:57:29
Post #5





Grupa: Zarejestrowani
Postów: 336
Pomógł: 0
Dołączył: 25.10.2006

Ostrzeżenie: (10%)
X----


Wiem, ze tak mozna zrobic. Moze nie dokonca dobrze napisalem. Chodzi mi glownie kod php jaki trzeba tam wstawic. Moj kod jest taki
  1. $sql="SELECT miasto FROM kamery ORDER BY kamery.miasto ASC";
  2. <table>
  3. <?
  4. $result=mysql_query($sql);
  5.  
  6. while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
  7.  
  8. {
  9.  
  10.  
  11.  
  12.  
  13. $nazwa = $row['miasto'];
  14.  
  15. echo ('<td class=wer><a href="'.$nazwa.',plan_miasta.html">'.$nazwa.'</a></td>');
  16.  
  17. ?>
  18.  
  19. </tr>
  20.  
  21. </table>
  22.  
  23.  
  24.  
  25. <?
  26.  
  27. }
  28.  
  29.  
  30.  
  31. ################################################################################
  32.  
  33. ?>
Dzieki temu wszystkie wpisy sa wyswietlane w jednej kolumnie. A chcialbym, aby w dwoch. Jak to mozna zrobic?


--------------------
Nieregulaminowa stopka usunieta
Go to the top of the page
+Quote Post
thek
post 24.08.2009, 22:22:24
Post #6





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




No przecież Ci napisałem smile.gif Swoją droga kod jaki podałeś to prawie jak "zły dotyk" dla webmastera winksmiley.jpg Choćby dlatego, że ma błąd już w składni html (nigdzie nawet wiersza TR nie otwierasz a co iteracje zamykasz go włącznie z tabelą, ale zrzucam to na karb złego przeklejenia ).
Jak już pisałem... zrób sobie w pętli warunek sprawdzający ile wynosi numer rekordu modulo liczba_kolumn i w zależności od wyniku odpowiednio taguj uzyskany wynik.
Lepiej jednak zachowaj standardy i zamiast wynikowego kodu:
  1. <tr><td><a href="">link</a></td><td><a href="">link</a></td><td><a href="">link</a></td></tr>
  2. <tr><td><a href="">link</a></td><td><a href="">link</a></td><td><a href="">link</a></td></tr>
  3. <tr><td><a href="">link</a></td><td><a href="">link</a></td><td><a href="">link</a></td></tr>

Zrób
  1. <div id="columned_container">
  2. <div>
  3. <a href="">link</a><a href="">link</a><a href="">link</a>
  4. </div>
  5. <div>
  6. <a href="">link</a><a href="">link</a><a href="">link</a>
  7. </div>
  8. <div>
  9. <a href="">link</a><a href="">link</a><a href="">link</a>
  10. </div>
  11. <span style="display:block; clear:both"></span>
  12. </div>

Wierz mi, że odpowiedni styl dla:
div#columned_container
div#columned_container div {float:left; width:}
div#columned_container div a {display:block;}
I masz wynik podany ładnie w kolumnach. Tabelki są BE tongue.gif

EDIT: Tylko mi nie mów, że nie potrafisz wymyślić jak masz modulo zastosować w wypadku layoutu na tabelach, bo to tylko sekundy użycia rozumu. Z divami zaś jeszcze mniej czasu mózgu to zajmie. Popatrz na kod wynikowy w HTML dokładnie i sam zauważysz jak masz napisać warunek IF.

Ten post edytował thek 24.08.2009, 22:32:59


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
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:02