 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
Cosmin Chiru
Data înscrierii: 19/Apr/2007
Mesaje: 215
|
| Trimis: Dum Mar 23, 2008 11:24 am Titlul subiectului: Afisare pe doua coloane + paginare + Smarty |
|
|
Salutare,
M-am lovit de o mica problema in cadrul proiectului la care lucrez momentan. Avem o pagina unde trebuie sa listam pe doua coloane produsele din doua categorii, deci o coloana = o categorie. Listam cate doua produse pe fiecare coloana.
Iar aici incepe problema: pe coloana din stanga vor fi intotdeauna mai putine produse decat pe cea din dreapta. Astfel, daca dau la pagina urmatoare, iar pe coloana din stanga nu mai am produse, ar trebui sa ramana aceleasi produse si sa se schimbe (avanseze) doar cele de pe coloana din dreapta.
Nu ar fi greu daca ar exista o paginare pentru fiecare coloana.
Imi poate da cineva vreun sfat?
Multumesc anticipat. |
|
| Sus |
|
Dodo
Data înscrierii: 22/Aug/2006
Mesaje: 892
Locație: Constanta
|
| Trimis: Dum Mar 23, 2008 3:04 pm Titlul subiectului: |
|
|
E chiar banal.
Cod:
$result = mysql_query("SELECT COUNT(*) AS `count` FROM `tabel` WHERE `cat` = 'categorie1'; // selectezi numarul de intrari din prima categorie
$data = mysql_fetch_array($result);
$count = $data['count'];
$pages = $count / 2; // imparti la 2 ca sa obtii numarul de pagini pentru prima categorie
if($_GET['page'] > $pages) // verifici daca pagina curenta e mai mare decat numarul total de paigni
$pageLeft = $pages; // daca pagina curenta este mai mare decat numarul total de pagini atunci pagina curenta pt stanga trebuie sa fie ultima pagina (numarul total de pagini)
else
$pageLeft = $_GET['page']; // daca nu, atunci pagina curenta din stanga este aceeasi cu cea din dreapta
//...
mysql_query("SELECT * FROM `tabel` WHERE ... LIMIT $pageLeft*2, 2"); // selectezi intrarile pentru pagina curenta
Sper ca am inteles bine ce iti trebuie, exemplul de mai sus se aplica in cazul in care vrei sa faci o singura paginare. |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 635
Locație: Drobeta Turnu Severin
|
| Trimis: Mar Mar 25, 2008 7:58 pm Titlul subiectului: |
|
|
Asa e cum ti-a zis Dodo, numai ca tu ai 2 selectii dupa cele doua categorii.
Cod:
$result1 = mysql_query("SELECT COUNT(*) AS `count` FROM `tabel` WHERE `cat` = 'categorie1'; // selectezi numarul de intrari din prima categorie
$result2 = mysql_query("SELECT COUNT(*) AS `count` FROM `tabel` WHERE `cat` = 'categorie2'; // selectezi numarul de intrari din a 2-a categorie
$data1 = mysql_fetch_array($result1);
$data2 = mysql_fetch_array($result2);
$pages1 = $data1['count']/2 ; // numarul de pagini pentru categoria din stanga
$pages2 = $data2['count']/2 ; // numarul de pagini pentru categoria din dreapta
// determinam pagina de start pentru selectia categoriei 1
if ($_GET['page']>$pages1
$pageLeft=$pages1;
elseif ($_GET['page']<1)
$pageLeft = 1;
else
$pageLeft=$_GET['page'];
// determinam pagina de start pentru selectia categoriei 2
if ($_GET['page']>$pages2
$pageRight=$pages1;
elseif ($_GET['page']<1)
$pageRight = 1;
else
$pageRight=$_GET['page'];
// se selecteaza intrarile pentru pagina curenta din stanga
$result1 = mysql_query("SELECT * FROM `tabel` WHERE `cat` = 'categorie1' LIMIT $pageLeft*2, 2");
// se selecteaza intrarile pentru pagina curenta din dreapta
$result2 = mysql_query("SELECT * FROM `tabel` WHERE `cat` = 'categorie2' LIMIT $pageRight*2, 2");
// se afiseaza cele patru produse
// .......
// link-ul paginare
$currpage = max($pageLeft, $pageRight);
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=".$currpage-1."\"> Pagina anterioara </a>\n";
echo " Pagina $currpage ";
echo "<a href=\"".$_SERVER['PHP_SELF']."?page=".$currpage+1."\"> Pagina urmatoare </a>\n";
Eu asa am inteles ! |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|