Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Wyświetlanie galerii z podziałem na kategorie
THOR_JAN
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 22.02.2010

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


Witam
Posiadam taki kod, który wyświetla galerię

  1. <?php
  2. include('config.php');
  3. $i = 4;
  4. $zapyanie=mysql_query('SELECT * FROM galeria ORDER BY id DESC');
  5. while($row=mysql_fetch_array($zapyanie)){
  6. echo '<a rel="lightbox[galeria]" href="galeria/'.$row['zdjecie'].'" title="'.$row['opis'].'"><img src="galeria/miniatury/'.$row['zdjecie'].'" alt="'.$row['opis'].'"></a>';
  7. if($i % 3 == 0)
  8. echo '<br>';
  9. $i++;
  10. }
  11. ?>


w tabeli są kolumny: id, zdjecie, kategoria, opis.

moim problemem jest wyświetlenie w stylu:


KATEGORIA

zdjęcie | zdjęcie | zdjęcie
zdjęcie | zdjęcie | zdjęcie
zdjęcie | zdjęcie | zdjęcie
zdjęcie | zdjęcie | zdjęcie

-------------------------------------------------

KATEGORIA

zdjęcie | zdjęcie | zdjęcie
zdjęcie | zdjęcie | zdjęcie
zdjęcie | zdjęcie | zdjęcie
zdjęcie | zdjęcie | zdjęcie

-------------------------------------------------

<< poprzednia str | następna str >>

chodzi o to, żeby wyświetlały się zdjęcia, które między sobą mają taką samą nazwą kategorii w jednym bloku
a następnie jak już takie się skończą to znowu zdjęcia które między sobą mają taką samą nazwę kategorii i tak do wyczerpania zapasów.

i dochodzi kwestia stronicowania tego.
(chociaż z tym jeszcze nie próbowałem nic robić jest tego tyle nan forum że powinienem sobie poradzić
także ważniejsza kwestia to wyświetlanie zdjęć, ale będę wdzięczny za jakieś sugestie odnośnie stronicowania również)

Pozdrawiam

Ten post edytował THOR_JAN 22.02.2010, 21:50:23
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
THOR_JAN
post
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 22.02.2010

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


Genialne "mortus"
dokładnie to o co mi chodziło
z mojej strony wielki ukłon w Twoim kierunku.
Pozdrawiam

pozostało rozpocząć walkę ze stronicowaniem.

  1. <?php
  2. include('config.php');
  3.  
  4. // STRONICOWANIE - ile wyników na stronie
  5. define('ILOSC_WYNIKOW_NA_STRONIE', 3);
  6. // STRONICOWANIE - end
  7.  
  8. // STRONICOWANIE - Zapytanie liczące ilość wpisów w bazie
  9. $SQL = "SELECT COUNT(*) FROM galeria"; // Zapytanie liczące ilość wpisów w bazie
  10. $RES = mysql_query($SQL);
  11. list($iloscWpisow) = mysql_fetch_row($RES);
  12.  
  13. // STRONICOWANIE - end
  14.  
  15. $kategorie_sql = "SELECT DISTINCT kategoria FROM galeria LIMIT ".mysql_escape_string((int)$_GET['strona']*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE."";
  16. $kategorie = mysql_query($kategorie_sql);
  17. while($kategorie_row = mysql_fetch_array($kategorie, MYSQL_ASSOC)){
  18. ?>
  19. <div class="category">
  20. <div class="category_name">
  21. <?php
  22. echo $kategorie_row["kategoria"];
  23. echo '<br>';
  24. ?>
  25. </div>
  26. <div class="category_photos">
  27. <?php
  28. echo '<table border="1" align="center" cellspacing="5">';
  29. echo '<tr>';
  30. $i = 4;
  31. $foty_sql = "SELECT * FROM galeria WHERE kategoria='" . $kategorie_row["kategoria"] . "';";
  32. $foty = mysql_query($foty_sql);
  33. while($foty_row = mysql_fetch_array($foty, MYSQL_ASSOC)) {
  34. echo '<td>';
  35. echo '<table >';
  36. echo '<tr>' ;
  37. echo '<td width="220" height="220" bgcolor="grey" >';
  38. echo '<a rel="lightbox[galeria]" href="galeria/'.$foty_row["zdjecie"].'" title="'.$foty_row["opis"].'"><img src="galeria/miniatury/'.$foty_row["zdjecie"].'" alt="'.$foty_row["opis"].'"></a>';
  39. echo '</td>';
  40. echo '</tr>';
  41. echo '<td width="220" height="50" valign="top">' ;
  42. echo $foty_row['opis'];
  43. echo '</td>';
  44. echo '</tr>';
  45. echo '</table>';
  46. echo '</td>';
  47. if($i % 3 == 0) {
  48. echo '</tr>';
  49. echo '<tr>';
  50. }
  51. $i++;
  52. }
  53. echo '</tr>';
  54. echo '</table>';
  55. ?>
  56. </div>
  57. </div>
  58. <?php
  59.  
  60. }
  61. // STRONICOWANIE - nawigacja
  62. //jesli nie jesteśmy na pierwszej stronie
  63. if($_GET['strona']>0){
  64. //wyswietlamy link do poprzedniej strony
  65. echo '<a href="?strona='.($_GET['strona']-1).'"> < </a> ';
  66.  
  67. }
  68.  
  69. for($i = 0;$i<=floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE);$i++){
  70. echo '<a href="?strona='.($i).'">[ '.($i+1).' ]</a> ';
  71.  
  72. }
  73. //jeśli nie jesteśmy na ostatniej stronie
  74. if($_GET['strona']<floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE)){
  75. //wyswietlamy link do nastepnej strony
  76. echo ' <a href="?strona='.($_GET['strona']+1).'"> > </a>';
  77.  
  78. }
  79. // STRONICOWANIE - end
  80.  
  81. ?>


próbuje zrobić stronicowanie (zapożyczone z forum) ale wszelkie próby spełzają na tym, że zlicza ilość zdjęć w tabeli
i zamiast wyświetlić 3 zdjęcia na strone wyświetla 3 kategorie na strone

wiem ,że błędem jest
  1. $kategorie_sql = "SELECT DISTINCT kategoria FROM galeria LIMIT ".mysql_escape_string((int)$_GET['strona']*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE."";
ale zostawiłem to w momencie kiedy jeszcze cokolwiek związanego ze stronicowaniem działało ;]

mam problem żeby uzyskać taki efekt, że wyświetlają się 3 zdjęcia nie zależnie z jakiej kategori są i żeby na kolejnej stronie pojawiła się ponownie nazwa kategori jeśli dana kategoria była dzielona na najmniej dwie strony

(stronicowanie działa na wersji galeri gdzie nie jest wyświetlana nazwa kategori nad zdjęciami danej kategori)

i taka sprawa czy stronicowanie za pomocą LIMIT będzie dobrym pomysłem przy w miarę nie wielkiej galeri ok 100~200 zdjęć ?

ostatnia kwestja dotyczy samej nawigacji wyświetlanie numerków od 1 do n nie jest zbyt estetyczne jak część tych cyfr zastąpić np. " ... "

PROSZĘ O JAKIEKOLWIEK SUGESTIE POMOCNE W ROZWIĄZANIU PROBLEMÓW
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 03:41