30-04-2011, 01:59
Witam. Piszę galerię zdjęć. Wszystko działa dobrze oprócz paginacji. Poniżej zamieszczam kod. Proszę o sprawdzenie go i powiedzieć mi w czym tkwi błąd.
Ogólnie galeria wygląda następująco. W centrum jest ZDJ DUŻE ostatnio dodane zdjęcie, Podnim jest wiersz w którym znajdują się po max 4 zdjęcia. Po kliknięciu na zdjęcie wyświetla się ono w miejscu ZDJ DUŻE nad wierszami.
[ZDJ DUŻE]
[zdj1] [zdj2] [zdj3] [zdj4]
Ogólnie galeria wygląda następująco. W centrum jest ZDJ DUŻE ostatnio dodane zdjęcie, Podnim jest wiersz w którym znajdują się po max 4 zdjęcia. Po kliknięciu na zdjęcie wyświetla się ono w miejscu ZDJ DUŻE nad wierszami.
[ZDJ DUŻE]
[zdj1] [zdj2] [zdj3] [zdj4]
Kod PHP:
<?
//SPRAWDZAMY, CZY JEST POKAZANY NUMER ZDJĘCIA, KTÓRE CHCEMY OBEJRZEĆ
if(!isset($_GET['zdj'])) //jeśli nie jest zdefiniowane zdjęcie, które mamy pokazać...
{
$zapytanie=mysql_query("SELECT * FROM obrazki LIMIT 1");//...to pobierz dane o pierwszym zdjęciu z tabeli
}
else
{
$zdj=$_GET['zdj'];
$zapytanie=mysql_query("SELECT * FROM obrazki WHERE id='$zdj'");//...w przeciwnym wypadku pokaż dane zdefiniowanego zdjęcia
}
//I WYŚWIETLAMY TABELKĘ (NA RAZIE 1 WIERSZ)
echo '<center>';
echo '<table width=400>'; //wyświetlamy tabelkę
echo '<tr border="0">';
echo '<td colspan="4" align=”center”>';
$dane=mysql_fetch_array($zapytanie); //przekształć zapytanie w tablicę
echo '<img src='.$dane['sciezka'].' width=375 align=center>'; //wyświetl zdjęcie
echo '</td></tr>'; //zamknij komórkę i wiersz
//paginacja
$subpage = $_GET['page'];
$perPage = 4;
if (!empty($_GET['subpage']) && (is_numeric($_GET['subpage'])))
{
$subpage = (int) $_GET['subpage'];
}
if ($subpage < 1)
{
$subpage = 1;
}
$start = ($subpage - 1) * $perPage;
//$zapytanie1 = 'SELECT id FROM obrazki LIMIT '.$start.', '.$perPage.'';
$idzapytania = mysql_query($zapytanie);
$max_zapytanie = 'SELECT id FROM obrazki WHERE id';
$max_idzapytania = mysql_query($max_zapytanie);
//A TERAZ POZOSTAŁE WIERSZE (PO 3 KOMÓRKI W WIERSZU)
$zapyanie=mysql_query('SELECT * FROM obrazki'); //znowu pobieramy wszystko z bazy
$il=mysql_num_rows($zapyanie); //sprawdzamy ile w tabeli jest zdjęć
$wiersze=ceil($il/$perPage); //i dzielimy to przez 3, z nadmiarem
for ($a=0;$a<$wiersze;$a++) //otwieramy pętlę, będzie się robiła tyle razy, ile jest wierszy
{
echo '<tr align=center>'; //wyświetlamy nowy wiersz
$b=$a*$perPage; //będą pobierane z tabeli po 3 zdjęcia
$zapytanie="SELECT * FROM obrazki LIMIT $b,$perPage"; //zapytanie
$a=mysql_query($zapytanie); //pobieramy po 4 zdjęcia
while($row=mysql_fetch_array($a))
{
echo '<td>'; //otwieramy nową komórkę
echo '<a href=index.php?go=galeria&zdj='.$row['id'].'><img src="'.$row['sciezka'].'" border=0 width=75></a>'; //hiperłącze do zdjęcia + zdjęcie
echo '</td>'; //zamykamy komórkę
}
echo '</tr>'; //zamykamy wiersz
}
echo '</table>'; //zamykamy tabelę
echo '</center>';
echo '<br /><br />';
$prev = $subpage - 1;
$next = $subpage + 1;
$prevLink = 'index.php?go=galeria&page='.$prev;
$nextLink = 'index.php?go=galeria&page='.$next;
$ilosc_wierszy = mysql_num_rows($max_idzapytania);
if($subpage > 1)
echo'<a style="text-decoration: none;" href="'.$prevLink.'">Poprzednia strona</a> ';
$stron=round($ilosc_wierszy/$perPage);
for($i=1; $i<=$stron; ++$i)
{
if($i==$subpage)
echo $i;
else
echo '<a style="text-decoration: none;" href="index.php?go=galeria&page='.$i.'">'.$i.' </a>';
}
if($subpage < $stron)
echo ' <a style="text-decoration: none;" href="'.$nextLink.'">Następna strona</a>';
?>