Autor Zpráva
Milan Zítka
Profil *
Zdravím,
narazil jsem na malý problém. Kdysi jsem začal používat tuto třídu pro stránkování:
www.jazzblog.cz/pager.class.rar

Teď bych ji rád použil pro výpis koncertů, ale v mysql dotazu potřebuji využít DISTINCT. Ovšem třída tuto skutečnost zřejmě přehlíží a při počítání celkového počtu záznamů to nebere na vědomí. Vznikají tak prázdné stránky. Pro větší názornost si to prohlédněte na http://www.jazzblog.cz/koncerty/kraj2.php?kraj=1

Pro úplnost je zde kód na samotné stránce, ačkoliv si myslím, že poblém bude v samotné třídě:
require_once("../sub/strankovani/Pager.class2.php");
//vytvoreni objektu, jako parametry konstruktoru se
//predavaji SQL dotaz a parametr URL, ktery bude pager
//pouzivat pro odkazy na dalsi stranky
if(isset($od)){
$pager = new Pager("SELECT DISTINCT gig_date FROM gigs_gig WHERE gig_date >= '$od' AND gig_date <= '$do' AND gig_kraj = '$kraj' ORDER BY gig_date", "page");
}else {
$pager = new Pager("SELECT DISTINCT gig_date FROM gigs_gig WHERE gig_date >= curdate() AND gig_kraj = '$kraj' ORDER BY gig_date", "page");
}
$pager->PageSize = 5;
$pager->PagerAlign = "center";
//ziska z databaze pozadovanou cast vysledkove sady
$pager->DataBind();

//postupne ziskavani jednotlivych zaznamu z vysledkove sady
while ($obj = $pager->GetOne()):
//výpis
endwhile;
//nastaveni modu FirstLast
$firstLastMode = new FirstLastPagerMode();
$firstLastMode->FirstCssClass = "first";
$firstLastMode->FirstPageText = "";
$firstLastMode->LastCssClass = "last";
$firstLastMode->LastPageText = "";
$pager->AddPagerMode($firstLastMode);
//nastaveni modu PrevNext
$prevNextMode = new PrevNextPagerMode();
$prevNextMode->NextCssClass = "next";
$prevNextMode->NextPageText = "";
$prevNextMode->PrevCssClass = "prev";
$prevNextMode->PrevPageText = "";
$pager->AddPagerMode($prevNextMode);
$pager->AddPagerMode(new DefaultPagerMode);
$pager->DrawPager();


Jestli vás napadne cokoliv, prosím pište. Něco málo v PHP umím, ale toto je zřejmě nad mé síly. Předem děkuji!
Kajman_
Profil *
Zkuste napsat dotaz bez použití distinct...
SELECT gig_date FROM gigs_gig WHERE gig_date >= curdate() AND gig_kraj = '$kraj' GROUP BY gig_date ORDER BY gig_date
Milan Zítka
Profil *
Mockrát děkuji za nakopnutí, už je to spraveno.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0