Skrypt paginacji wykorzystany do obrazków:
<?php
$dir = "images"; // katalog z plikami
$i = 0;
foreach (glob("$dir/{*.jpg,*.png,*.gif,*.JPG,*.PNG,*.GIF}",GLOB_BRACE
) as $name) { $tablica[$i] = "<a href=\"".$name."\"><img src=\"".$name."\" alt=\"loading...\" width=800> <br></a>";
$i++;
}
$ilosc = count($tablica); // ilosc zdjec w katalogu $iloscNaStronie = wiersze*kolumny; //maksymalna ilosc na stronie
$iloscStron = ceil($ilosc/$iloscNaStronie); // wylicza ilosc stron if($_GET['strona'] && $_GET['strona'] > 0 && $_GET['strona'] <= $iloscStron) $strona = $_GET['strona']-1;
else $strona = 0;
$start = $strona * $iloscNaStronie;
if($start >= $ilosc) $start = 0;
$stop = $start + $iloscNaStronie;
if($stop >= $ilosc) $stop = $ilosc;
for($i = $start; $i < $stop; $i++){
if (!($i % kolumny)){
}
}
echo '<div align="center">'; if($strona > 0
) echo '<a href="images.php?strona='.($strona).'"> « Previous </a>'; else echo ' « Previous '; for($i = 1; $i <= $iloscStron; $i++){
if($_GET['strona'] == $i){
echo '<b> ['.$i.'] </b>'; } else {
echo '<a href="images.php?strona='.$i.'" > ['.$i.'] </a>'; }
}
if($strona < $iloscStron-1
) echo '<a href="images.php?strona='.($strona+2).'"> Next » </a>'; else echo ' Next » '; ?>
Teraz moje 2 pytania:
1. Stronicowanie działa poprawnie, natomiast po kliknięciu obrazka otwiera mi go w nowym oknie, nie wiem jak spowodować otwarcie strony z obrazkiem i komentarzami pod nim (gdy podłączę do tego pobieranie rekordów z bazy i trochę spreparuje to żądany efekt jest, ale połowicznie, ponieważ nie wybiera właściwego id obrazka tylko losowe. (obrazki wyświetlam jako widok.php?id=... gdzie kropki to wartość id danego obrazka w bazie).
2. chciałbym jeszcze zbudować stronicowanie komentarzy pod takim obrazkiem, niestety za to już nie wiem jak się zabrać.
Poniżej skrypty komentarzy oraz strony widoku.
komentarze.php
<?php
include('mysql.php');
// Pobieramy pełny adres strony na której wysyłany jest komentarz
$lokalizacja = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
// Pobieramy adres aktualnej strony bez nazwy domeny, czyli np.: "jakis-artykul.php", do bazy danych
$adres = $_SERVER['REQUEST_URI'];
// Jeżeli został wciśnięty przycisk "wyślij"
if (isset ($_POST['wys_kom'])) {
// Jeżeli nick jest pusty
if (empty($_POST['nick'])) { $komunikat .= '<p> wpisz nick </p>' ;
} else {
$nick = ($_POST['nick']);
}
// Jeżeli komentarz jest pusty
if (empty($_POST['komentarz']) ) { $komunikat .= '<p> wpisz komentarz </p>';
} else {
}
//Jeżeli nie ma żadnego błędu
if (!isset($komunikat)) { $zapytanie = "INSERT INTO komentarze (url, nick, data, komentarz) VALUES ('$adres', '$nick', NOW(), '$koment')";
header ("Location: " . $_SERVER['HTTP_REFERER']); } else {
$komunikat = '<p>Przepraszamy za chwilowe usterki. Wysłanie komentarza nie było możliwe. Spróbuj później.</p>';
}
}
}
<body> ';
// Wyświetla wszystkie komentarze do tego artykułu
echo'<h2> komentarze:</h2>';
$zapytanie2 = "SELECT * FROM komentarze WHERE url = '$adres' ORDER BY id";
<div class="koment">
<p class="koment_nag"><b>',$dane['nick'],'</b> (',$dane['data'],')</p>
<p>',nl2br($dane['komentarz']),'</p> </div>';
}
// Jeżeli są jakieś komunikaty - wyświetl je
echo '<div class="komunikat">'.$komunikat.'</div>'; }
// Formularz wysyłania komentarza
<div class="formularz">
<h2> dodaj komentarz: </h2>
<form action="'.$lokalizacja.'" method="post">
<p><b> nick </b>: <br /><input type="text" name="nick" size="35" maxlength="35" /></p>
<p><b> komentarz </b>:<br /><textarea name="komentarz" cols="77" rows="10" ></textarea></p>';
<p class="submit"><input type="submit" name="wys_kom" value="wyslij" class="przycisk"/></p>
</form>
</body>
</html>';
?>
widok.php
<?php
include('mysql.php');
if(!$_GET['id']){
header("Location: index.php"); }
$id = $_GET['id'];
$search_image = mysql_query("SELECT * FROM images WHERE id='$id'");
header("Location: index.php"); }
$name_pic = $info_pic['image'];
echo "<img src='img/$name_pic' alt='pic' 'width=500' /> ";
include('komentarze.php');
?>