Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Afisare pe doua coloane + paginare + Smarty
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
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  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community