http://alpha-thema-online.uv.ro
Fa-ti si tu propriul forum, pe www.myforum.ro!
Pagina de start a forumului http://alpha-thema-online.uv.ro Autentificare Inregistrare FAQ Membri Cautare

Pagina de start a forumului http://alpha-thema-online.uv.ro » Web development » Afisarea paginilor numerotate PHP
Creaza un subiect nou  Raspunde la subiect Subiectul anterior :: Subiectul urmator 
Afisarea paginilor numerotate PHP
MesajTrimis: 19/07/2007 16:55 Raspunde cu citat (quote)
Ad_Infinitum
Administrator
Administrator
Ad_Infinitum
Data inscrierii: 23/Iun/2007
Mesaje: 212




De curand pe cand ma uitam in loguri, m-am gandit ca pagina care imi afiseaza doar ultimele 10 inregistrari din baza de date nu ma multumeste si atunci am zis ca trebuie sa fac cumva sa pot vedea cate 10 inregistrari si sa am posibilitatea de a putea selecta eu ce pagina vreau sa imi afiseze scriptul. La inceput parea complicat dar dupa 15 minute de gandire si 5 de programare am reusit sa fac scriptul de mai jos care imi returneaza pentru inceput ultimele 10 inregistari din baza de date si sub ele se afiseaza numerele pentru restul paginilor:
Cod:

Citat:


<?
// Pentru inceput se stabilesc parametrii doriti:

$rezultate_afisare_pagina = 10; // specificati nr de rezultate care vor fi afisate pe pagina
$numere_rand = 15; // specificati dupa cate numere se va trece la rand nou
$numele_paginii = "pagina_demo.php"; // numele acestei pagini in care aveti scriptul
$server_bd = "localhost"; // adresa serverului mysql (de obicei localhost)
$user_bd = "root"; // userul cu care va conectati la bd
$parola_bd = "parola"; // parola pentru conectarea la bd
$nume_bd = "nume_baza_date"; // numele bazei de date utilizate
$tabel_bd = "numele_tabelului_din_bd"; // numele tabelului pe care se lucreaza

// Apoi se face o interogare la baza de date pentru a vedea cate randuri exista:

$conectare = mysql_connect($server_bd, $user_bd, $parola_bd) OR die("<br>Eroare 1");
mysql_select_db($nume_bd, $conectare) OR die("<br>Eroare 2");
$interogare = "SELECT * FROM '".$tabel_bd."'";
$rezultat = mysql_query($interogare, $conectare) OR die("<br>Eroare 3 ");
$nr_total_pagini = (integer)(mysql_num_rows($rezultat)/$rezultate_afisare_pagina);

// In continuare se face interogarea pentru afisarea rezultatelor

if (isset($_GET['id']))
{
// daca se cere o anumita pagina
$id = $_GET['id'];
$interogare = "SELECT * FROM ".$prefix_tabel_bd."download_ver LIMIT ".$id.",".$rezultate_afisare_pagina;//
}
if (!isset($_GET['id']))
{
// daca se acceseaza pagina prima data se afiseaza ultimele inregistrari din bd
$interogare = "SELECT * FROM ".$prefix_tabel_bd."download_ver ORDER BY id DESC LIMIT 0,".$rezultate_afisare_pagina;
}
$rezultat = mysql_query($interogare, $conectare) OR die("<br>Eroare 4 ");

// aici se afiseaza rezultatele in pagina

while ($rand = mysql_fetch_array($rezultat))
{
echo $rand['coloana1']; // specificati coloanele din tabel pe care doriti sa le afisati
}

// dupa afisarea rezultatelor se afiseaza in continuare numerele pentru celelalte pagini

$randuri = (integer)($nr_total_pagini / $numere_rand);
$nrr = 0;
for ($ee=1;$ee<=$randuri;$ee++)
{
$nrr = $nrr+$numere_rand;
$rnd[$ee] = $nrr;
}
$id_m = 0;
echo '<div align="center">';
for ($s=1;$s<=$nr_total_pagini+1;$s++)
{
echo ' - <a href="'.$numele_paginii.'?id='.$id_m.'">'.$s.'</a>';
foreach($rnd as $val)
{
if ($s == $val)
{
echo "<br>";
}
}
$id_m = $id_m + $rezultate_afisare_pagina;
}
echo ' - <br><br></div>';

?>



Scriptul de mai sus va afisa, daca este accestat prima data, ultimele $rezultate_afisare_pagina existente in baza de date, iar sub efecte va afisa un sir de numere care corespund celorlalte pagini. (Exemplu: Pagina 1 - 2 - 3 - 4 -)
Daca dati clik pe unul din numere se va incarca din nou pagina si va afisa $rezultate_afisare_pagina incepand de la id-ul specificat (tabelul din baza de date trebuie sa aiba un camp numit id care se incrementeaza automat la fiecare inregistrare altfel nu va functiona interogarea (sau schimbati ORDER BY id DESC cu ce doriti voi))

Articol trimis de Birkoff
Vezi profilul utilizatorului Trimite mesaj privat

Afisarea paginilor numerotate PHP
 Pagina de start a forumului http://alpha-thema-online.uv.ro » Web development
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum
Ora este GMT + 3 ore  
Pagina 1 din 1  

  
  
 Creaza un subiect nou  Raspunde la subiect  


Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro
    Powered by phpBB © 2001-2004 phpBB Group. phpBB Skin by Vjacheslav Trushkin.