Witam, staram się zrobić podstawę pod mały serwis.
Przyjazne Linki i Paginacja
Wszystko działa częściowo
Kiedy klikam 1 2 3 4 5 6 przełącza mi podstrony i tu jest ok ale kiedy klikam na wynik tej paginacji czyli link który wywołuje wyświetlenie konkretnych danych z bazy.
Kiedy klikam w link
echo '<a href="'.$nurl->Url('module=news&action=show&name='.$wiersz['title'].'&id='.$wiersz['id'].'').'">Aktualnosc o id '.$wiersz['id'].'</a><br />';
Nie wywołuje się ale przechodzi z podstrony 5 na 1 co prawda klikając na link z podstrony 1 wywołuje się to co chciałem na piątej.
Dopiero ponowne klikniecie tego samego linku wywoła wypisanie tego co zawiera link z podstrony 1
Czasami są jeszcze dziwniejsze przypadki domyślam się że przez pagiancje
Kiedy klikam na podstony 1 2 3 4 5 link w pasku adresu wygląda tak
<a href="http://127.0.0.1/Main/index.php?pagenum=2" target="_blank">http://127.0.0.1/Main/index.php?pagenum=2</a>
a kiedy jestem na 6 i klikam na link w pasku adresu pojawia się taki link
[
<a href="http://127.0.0.1/Main/index.php?pagenum=6Madafaka-Madafaka-test-0120080,120010.html" target="_blank">http://127.0.0.1/Main/index.php?pagenum=6M...080,120010.html</a>
/php]
Kod plik index.php
[php]
<?php
require_once('NUrl.class.php');
include_once('class/pagination.php');
include "config/db.php";
//bazowy url. Może to być np. <a href="http://mojastrona.pl/" target="_blank">http://mojastrona.pl/</a>
//tutaj dla testów będę brał ścieżkę, którą określacie w linku
$baseUrl = $_SERVER['REQUEST_URI'];
if (!empty($_SERVER['PATH_INFO'])) //jeszcze trzeba z tego automatycznego $baseUrl wyciąć path_info. Gdy sami określać będziecie $baseUrl to ta wycinka będzie zbędna $baseUrl = substr($baseUrl,0
, strpos($baseUrl,$_SERVER['PATH_INFO'])).'/'; //i jeszcze wywalę index.php jeśli się nam tu wstawił
if (substr($baseUrl,-9) == 'index.php') $baseUrl = substr($baseUrl,0
,-9
);
//stworzenie obiektu do generacji linków
$nurl = new NUrl($baseUrl);
//przetworzenie ścieżki na parametry $_GET
$nurl->Decode();
//tutaj damy nasz prosty kontroller, obsługujący nasze moduły
echo '<div><b>Pamietajcie - przyklad zadziala dopiero gdy w apache\'u wlaczycie mod-rewrite!!!</b><br /><br />'; controller();
//a tu przykładowe menu z generowaniem linków
echo '<a href="'.$nurl->Url().'">Strona glowna</a><br />'; echo '<a href="'.$nurl->Url('module=test&action=jakasakcja&par1=war1&par2=war2').'">Modul testowy z jakas akcja</a><br />'; echo '<a href="'.$nurl->Url('module=news&action=list').'">Lista aktualnosci</a><br />'; /*
$zapytanie_podobne = "SELECT * FROM artykuly ORDER BY id DESC limit 5";
if ($r = mysql_query ($zapytanie)) {
while ($wiersz = mysql_fetch_array($r)) {
echo '<a href="'.$nurl->Url('module=news&action=show&name='.$wiersz['title'].'&id='.$wiersz['id'].'').'">Aktualnosc o id '.$wiersz['id'].'</a><br />';
}
}
*/
$number_of_results_to_show_per_page = 1;
if($total_results >$number_of_results_to_show_per_page)
{
$page = new pagination($total_results,$number_of_results_to_show_per_page,'links'); // it will show links
$return_qry = $page->get_pagination_query('Select * from artykuly ORDER BY id DESC');
}
else
{
$query = mysql_query( 'select * from artykuly ORDER BY id DESC'); }
{
echo '<a href="'.$nurl->Url('module=news&action=show&name='.$wiersz['title'].'&id='.$wiersz['id'].'').'">Aktualnosc o id '.$wiersz['id'].'</a><br />'; }
}
if($total_results > $results_per_page)
{
echo "<ul class=paginator>"; echo $page->pagination_string; }
/*
echo '<a href="'.$nurl->Url('module=news&action=show&name=kwiatki-sa-zolte&id=2').'">Aktualnosc o id 2</a><br />';
*/
function controller(){
$module = isset($_GET['module']) ?
$_GET['module'] : ''; switch ($module){
case 'test':
echo 'Hej, wszedles wlasnie w modul testowy. Akcja jaka wywolales to <b>'.$_GET['action'].'</b>'; break;
case 'news':
echo 'Hej, wszedles wlasnie w modul aktualnosci.'; if ($_GET['action'] == 'show'){
echo ' Akcja to <b>show</b>. <br />Id aktulanosci to: <b>'.$_GET['id'].'</b><br />Nazwa aktualnosci to: <b>'.$_GET['name'].'</b>'; $wynik = mysql_query('SELECT * FROM artykuly WHERE id='.$_GET['id'].'') or
die('Błąd zapytania'); echo '<h1>'.$r['title'].'</h1>'; }
} elseif ($_GET['action'] == 'list'){
echo ' Akcja to <b>list</b>, wiec tu powinno sie wstawic liste aktualnosci :)'; }
break;
case '':
echo 'Jestes teraz na stronie glownej, bez odpalania jakiegokolwiek modulu'; break;
default:
echo 'Wszedles w modul, ktorego nie obsluguje. Spadaj!!'; }
echo '<br /><br />A tak wyglada tablica $_GET:'; }
?>