micku7zu
16.01.2010, 23:09
Am vazut ca multi useri au avut problema cu paginarea asa ca am zis sa fac o paginare frumoasa care nu necesita reincarcarea paginii...
Demo: http://zutv.info/paginare/
Download link cwr: http://www.cwr.ro/forum/downloads.php?do=file&id=2250
Fisiere ce trebuie configurate:
Paginare.php
<?php
/* daca paginarea este inclusa intr-o pagina
fara conectare este nevoie si de aceasta conectare
*/
$conexiune = mysql_connect('localhost','root','') or die("Nu ma pot conecta la MySQL!");
mysql_select_db('paginare', $conexiune) or die("Nu gasesc baza de date");
....
/* modificari */
$nr=5; // cate rezultate pe pagina
/* modificari */
....
/*modifica query */
// aici modificati tabelul din care vreti sa selectati
$s=mysql_query("SELECT * FROM `paginare` ORDER by `id` DESC limit $inceput,$nr");
$t=mysql_num_rows(mysql_query("SELECT * FROM `paginare`"));
$pg=ceil($t/$nr);
/* modifica query */
....
//cum vreti sa arate rezultatul..
// eu am folosit un tabel in care am inscris fiecare rand..
echo '<table border="1"><tr><th>#</th><th>ID</th><th>Nume</th><th>Prenume</th><th>Email</th></tr>';
while($r = mysql_fetch_array($s))
{
/* modifica extragerile si rezultatul */
$nume=$r['nume'];
$id=$r['id'];
$prenume=$r['prenume'];
$email=$r['email'];
$c=$i%2;
echo '<tr><td>'.$i.'</td><td>'.$id.'</td><td>'.$nume.'</td><td>'.$prenume.'</td><td>'.$email.'</td></tr>';
/* modifica extragerile si rezultatul */
$i=$i+1;
}
echo '</table>';
...
$distanta=3;
//reprezinta distanta de la pagina curenta pe care sunteti si pana la cea care o va arata
//de exemplu daca sunteti pe pagina 6 si aveti distanta setata 3
// va arata 3 4 5 6 7 8 9
...
Alte modificari de design le puteti face in CSS si in fisierul .js
Update: Are si sortare dupa titlu, care momentan nu este in demo.
Demo: http://zutv.info/paginare/
Download link cwr: http://www.cwr.ro/forum/downloads.php?do=file&id=2250
Fisiere ce trebuie configurate:
Paginare.php
<?php
/* daca paginarea este inclusa intr-o pagina
fara conectare este nevoie si de aceasta conectare
*/
$conexiune = mysql_connect('localhost','root','') or die("Nu ma pot conecta la MySQL!");
mysql_select_db('paginare', $conexiune) or die("Nu gasesc baza de date");
....
/* modificari */
$nr=5; // cate rezultate pe pagina
/* modificari */
....
/*modifica query */
// aici modificati tabelul din care vreti sa selectati
$s=mysql_query("SELECT * FROM `paginare` ORDER by `id` DESC limit $inceput,$nr");
$t=mysql_num_rows(mysql_query("SELECT * FROM `paginare`"));
$pg=ceil($t/$nr);
/* modifica query */
....
//cum vreti sa arate rezultatul..
// eu am folosit un tabel in care am inscris fiecare rand..
echo '<table border="1"><tr><th>#</th><th>ID</th><th>Nume</th><th>Prenume</th><th>Email</th></tr>';
while($r = mysql_fetch_array($s))
{
/* modifica extragerile si rezultatul */
$nume=$r['nume'];
$id=$r['id'];
$prenume=$r['prenume'];
$email=$r['email'];
$c=$i%2;
echo '<tr><td>'.$i.'</td><td>'.$id.'</td><td>'.$nume.'</td><td>'.$prenume.'</td><td>'.$email.'</td></tr>';
/* modifica extragerile si rezultatul */
$i=$i+1;
}
echo '</table>';
...
$distanta=3;
//reprezinta distanta de la pagina curenta pe care sunteti si pana la cea care o va arata
//de exemplu daca sunteti pe pagina 6 si aveti distanta setata 3
// va arata 3 4 5 6 7 8 9
...
Alte modificari de design le puteti face in CSS si in fisierul .js
Update: Are si sortare dupa titlu, care momentan nu este in demo.