Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Układ porcjowanych wyników
Forum PHP.pl > Forum > Przedszkole
konradinho
Witam.

Mam pewien problem. Porcjowanie wyników na strone jak najbardziej działa, wyświetla mi się 8 wyników na stronę ale próbuje poukładać je w dwie kolumny obok siebie(tak aby były 4 wyniki pionowo i obok nich też 4 wyniki).

Czy może ktoś mnie naprowadzić jak to wykonaćsmile.gif ?

Kod:

  1. $cat = $_GET['kat'];
  2.  
  3. if(isset($_GET['kat']))
  4. {
  5. $limit = 8; // Ilość pozycji na stronę...
  6. $pg = $_GET['page']; // Pobranie do zmiennej numeru strony...
  7.  
  8. if(!isset($pg)) {
  9.  
  10. $l1 = 0;
  11. $l2 = $limit; //Jeśli zmienna $pg ma pustą zawartość nastawiamy granice od 0 do wartości $limit
  12.  
  13. } else {
  14.  
  15. $l1 = $limit * $pg - $limit; //W przeciwnym wypadku oblicz dolną granicę...
  16. $l2 = $limit; //Oraz górną granicę...
  17.  
  18. }
  19. echo '<br><br>';
  20. $zapytanie = "SELECT * FROM fotos WHERE kategoria=$cat LIMIT $l1,$l2";
  21. $wykonaj = mysql_query($zapytanie);
  22. while($wiersz = mysql_fetch_array($wykonaj))
  23. {
  24. echo '<a href="photos.php?id='.$wiersz['id'].'"><img style="opacity: 1;" src="images/thumbs/'.$wiersz['nazwaPliku'].'" /></a></a><br><br><unv>Data dodania:</unv> <data_dodania>'.$wiersz['dataDodania'].'</data_dodania>';
  25. }
  26.  
  27. REQUIRE("include/pagination.php"); //Odwołujemy się do biblioteki z funkcją...
  28. list($records)=mysql_fetch_row(mysql_query("SELECT count(*) FROM fotos WHERE kategoria=$cat"));
  29.  
  30. //Jeśli są jakieś rekordy do wyświetlenia wygeneruj paginację...
  31. if($records >= 1){
  32.  
  33. //Funkcja musi przyjąć odpowiednią tablicę jako parametr:
  34.  
  35. $pag['posts'] = $records; //Ilość rekordów...
  36. $pag['limit'] = $limit; //Rekordów na stronę...
  37. $pag['page'] = $_GET['page']; //Aktualna strona...
  38. $pag['separator'] = 'cat.php?kat='.$cat.'&'; //Separatror - ? lub & więcej o tym w dalszej części.
  39. $pag['url_class'] = 'pages'; //Klasa linków paginowania w CSS...
  40. $pag['a_pg_class'] = 'active_pg'; //Klasa numeru aktywnej strony.
  41. $pag['page_label'] = 'Strona:'; //Etykieta z napisem ''Strona: x/x'' obok paginacji.
  42.  
  43. //Wywołanie funkcji z tablicą jako parametr poprzez ECHO...
  44. ECHO print_pagination($pag);
  45. }
  46.  
  47. }
  48. ?>
Pilsener
Zależy od tego, jak chcesz wyświetlić fotki w liczbie np. 5 (bo nie zawsze liczba fotek będzie podzielna przez 8). Najprościej po prostu użyć pętli for, policzyć liczbę wierszy i wyświetlać fotki po 2 na wiersz zgodnie z prostą funkcją: pierwszy wiersz fotki 1 i 2, drugi fotki 3 i 4 itd.
  1. $ile_fotek = 5;
  2. $ile_wierszy = ceil($ile_fotek/2);
  3.  
  4. for ($i = 1; $i <= $ile_wierszy; $i++) {
  5. $wiersze .= '<tr><td>'.$fotki[($i*2-1)].'</td><td>'.$fotki[($i*2)].'</td></tr>';
  6. }
  7. $fotki = '<table>'.$wiersze.'</table>';
  8. echo $fotki;
- oczywiście tablica fotki jest tablicą numeryczną gdzie jeden wiersz = jeden img, wystarczy odpowiednio zmodyfikować kod. Dla 5-ciu fotek pętla obróci się 3 razy. Można też dodać warunek, by nie tworzyć pustego <td> gdy liczba fotek jest nieparzysta.

Bardziej elegancko jest dodać drugą pętlę (tworzącą kolumny) i pozwolić userowi zdefiniować w PA/pliku .cfg w ilu wierszach i kolumnach chce wyswietlać fotki.
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.