$tabela .= "<th><a href='index.php?dzial=katalog&tytul= $tytul&imie=$imie&nazwisko=$nazwisko&rodzaj_ksiazki=$nazwa&cena_od=$cena_od&cena_do=$cena_do&sortuj_po=cena&sortuj_kierunek=asc&strona=$strona'> + </a><a href='index.php?dzial=katalog&tytul= $tytul&imie=$imie&nazwisko=$nazwisko&rodzaj_ksiazki=$nazwa&cena_od=$cena_od&cena_do=$cena_do&sortuj_po=cena&sortuj_kierunek=desc&strona=$strona'> - </a></th>";
Na podstawie tego hiperlinku jest generowane zapytanie, gdy numer strony jest równy 0 (oznacza pierwszą stronę) bądź pusty, to wszystko jest ok. Natomiast gdy numer jest inny to zapytanie nie zwraca żadnych wyników...
Poniżej kod:
<? class katalog { /** * Poł?czenie do bazy. * * @var object */ private $_connection; /** * Ile rekordów ma być wy?wietlanych na stronie. * * @var int */ private $_rekordowNaStronie = 3; /** * Aktualnie wybrana strona wyników wyszukiwania. * * @var int */ private $_strona; /** * Przechowuje zapytanie pobieraj?ce okre?lone dane bez klauzuli LIMIT (wszystkie rekordy). * * @var string */ private $_zapytanieBezLimit; public function __construct() { $this->_connection = $link; $this->_strona = (int)$_GET['strona']; else $this->_strona = 0; } /** * Buduje SQL z zapytaniem do bazy. Uwzględnia wszystkie warunki oraz wybran? stronę. * * @return string */ public function zbudujZapytanie() { $query = "SELECT k.tytul, a.nazwisko, r.nazwa, k.cena, k.id "; $query=$query. " FROM ksiazki k, rodzaje_ksiazek r, autorzy a "; $query=$query. " WHERE k.id_autora=a.id AND k.id_rodzaju=r.id "; // dodawanie warunków z formularza wyszukiwania $query .= "AND k.tytul LIKE '%$_GET[tytul]%' "; $query .= "AND a.nazwisko LIKE '%$_GET[nazwisko]%' "; $query .= "AND a.imie LIKE '%$_GET[imie]%' "; $query .= "AND r.nazwa = '$_GET[rodzaj_ksiazki]' "; $cena_od = (int)$_GET['cena_od']; $query .= "AND k.cena >= $cena_od "; } $cena_do = (int)$_GET['cena_do']; $query .= "AND k.cena <= $cena_do "; } $this->_zapytanieBezLimit = $query; // dodanie warunkow sortowania if($_GET['sortuj_po'] == 'tytul') $query .= " ORDER BY k.tytul"; if($_GET['sortuj_po'] == 'nazwisko') $query .= " ORDER BY a.nazwisko"; if($_GET['sortuj_po'] == 'cena') $query .= " ORDER BY k.cena"; if($_GET['sortuj_po'] == 'nazwa') $query .= " ORDER BY r.nazwa"; if($_GET['sortuj_kierunek'] == 'desc') $query .= " DESC"; if($_GET['sortuj_kierunek'] == 'asc') $query .= " ASC"; } } $query .= " LIMIT ".($this->_strona*$this->_rekordowNaStronie).", ".$this->_rekordowNaStronie; return $query; } /** * Zwraca HTML z linkami do wszystkich stron wyników. Zachowuje informacje o parametrach wyszukiwania. * * @return string */ public function zwrocLinkiStron() { if($result) { $html = ''; for($i=0; $i<$liczbaStron; $i++) $html .= "<a href='index.php?$queryString&strona=$i'>".($i+1)."</a>"; return $html; } return ''; } /** * Zwraca tabelę HTML z danymi. * * @param string $query Zapytanie, które nazleży wykonać * @return string */ public function zwrocTabele($query) { $tabela = ''; $i = $this->_strona*$this->_rekordowNaStronie+1; if($i%2 == 0) $tabela .= "<tr class='kolorowy'>"; else $tabela .= "<tr>"; $tabela .= "<td align='center'>$i</td>"; $tabela .= "<td align='center'>".$row['tytul']."</td>"; $tabela .= "<td align='center'>".$row['nazwisko']."</td>"; $tabela .= "<td align='center'>".$row['nazwa']."</td>"; $tabela .= "<td align='center'>".$row['cena']."</td>"; $tabela .= "<td align='center'><a href='index.php?dzial=detale&id=".$row['id']."'>szczegóły</a></td>"; $tabela .= "</tr>"; $i++; } $zapytanie .="<th><a href='index.php?dzial=katalog&tytul=$tytul&imie=$imie&nazwisko=$nazwisko&rodzaj_ksiazki=$nazwa&cena_od=$cena_od&cena_do=$cena_do&sortuj_po='"; $zapytanie2 .="&sortuj_kierunek="; $zapytanie3 .="&strona=$strona>"; $zapytanie4 .=" </a></th>"; $tabela.="<tr class='kolorowy' style='border:0';>"; //echo $tabela; //$tabela .="<tr>"; // $tabela .= "<td>"; //$tabela .= $zapytanie."tytul".zapytanie2."asc".zapytanie3." + //".zapytanie4."</td>"; //$tabela.="</tr>"; $nazwisko=$_GET['strona']; $imie=$_GET['imie']; $tytul=$_GET['tytul']; $nazwa=$_GET['rodzaj_ksiazki']; $cena_od=$_GET['cena_od']; $cena_do=$_GET['cena_do']; $strona=$_GET['strona']; $tabela.="<th/>"; $tabela .= "<th><a href='index.php?dzial=katalog&tytul= $tytul&imie=$imie&nazwisko=$nazwisko&rodzaj_ksiazki=$nazwa&cena_od=$cena_od&cena_do=$cena_do&sortuj_po=tytul&sortuj_kierunek=asc&strona=$strona'> + </a><a href='index.php?dzial=katalog&tytul= $tytul&imie=$imie&nazwisko=$nazwisko&rodzaj_ksiazki=$nazwa&cena_od=$cena_od&cena_do=$cena_do&sortuj_po=tytul&sortuj_kierunek=desc&strona=$strona'> - </a></th>"; $tabela .= "<th><a href='index.php?dzial=katalog&tytul= $tytul&imie=$imie&nazwisko=$nazwisko&rodzaj_ksiazki=$nazwa&cena_od=$cena_od&cena_do=$cena_do&sortuj_po=nazwisko&sortuj_kierunek=asc&strona=$strona'> + </a><a href='index.php?dzial=katalog&tytul= $tytul&imie=$imie&nazwisko=$nazwisko&rodzaj_ksiazki=$nazwa&cena_od=$cena_od&cena_do=$cena_do&sortuj_po=nazwisko&sortuj_kierunek=desc&strona=$strona'> - </a></th>"; $tabela .= "<th><a href='index.php?dzial=katalog&tytul= $tytul&imie=$imie&nazwisko=$nazwisko&rodzaj_ksiazki=$nazwa&cena_od=$cena_od&cena_do=$cena_do&sortuj_po=nazwa&sortuj_kierunek=asc&strona=$strona'> + </a><a href='index.php?dzial=katalog&tytul= $tytul&imie=$imie&nazwisko=$nazwisko&rodzaj_ksiazki=$nazwa&cena_od=$cena_od&cena_do=$cena_do&sortuj_po=nazwa&sortuj_kierunek=desc&strona=$strona'> - </a></th>"; $tabela .= "<th><a href='index.php?dzial=katalog&tytul= $tytul&imie=$imie&nazwisko=$nazwisko&rodzaj_ksiazki=$nazwa&cena_od=$cena_od&cena_do=$cena_do&sortuj_po=cena&sortuj_kierunek=asc&strona=$strona'> + </a><a href='index.php?dzial=katalog&tytul= $tytul&imie=$imie&nazwisko=$nazwisko&rodzaj_ksiazki=$nazwa&cena_od=$cena_od&cena_do=$cena_do&sortuj_po=cena&sortuj_kierunek=desc&strona=$strona'> - </a></th>"; $tabela.="</tr>"; return $tabela; } } ?> <table class="tabela" cellspacing="0" style="width: 90%; margin: 10px;"> <tr> <th>Lp</th> <th>Tytuł</th> <th>Autor</th> <th>Rodzaj</th> <th>Cena</th> <th> </th> </tr> <? $katalog = new katalog(); $query = $katalog->zbudujZapytanie(); ?> <tfoot> <tr> <td colspan="6"> <? ?> </td> </tr> </tfoot> </table>
Dlaczego to nie działa, w jaki sposób to naprawić?