Probleme numerotare script paginare
Scris: Dum Feb 26, 2012
Salut ! Am si eu o problema , am folosit un script de paginare de pe situ tau si am o problmea . uite codul:
Am doua problmeme aici :
prima problmea ar fi la notare , adica in loc sa puna 1,2,3,4,5 etc imi ia id din tabela .
si a doua problmea chiar daca nu depasesc $rowsperpage adica cum am pus eu 5 chiar daca am 4 tot imi arata a doua pagina! cum as putea sa numi arete ce afiseaza codu
Numa cand chiar am peste 5 lini multumesc mult ! sper ca am fost destul de explicit !! mutumesc o zi buna
Cod: Selectaţi tot
$sql = "SET NAMES 'utf8'";
mysql_query($sql);
// Afla cate linii sunt in tabel (MODIFICATI 'nume_tb') din baza de date
$sql = "SELECT COUNT(*) FROM `tblsource_code`";
$result = mysql_query($sql) or trigger_error(E_USER_ERROR);
$r = mysql_fetch_row($result);
$numrows = $r[0];
// Stabileste numarul de linii din tabel afisate in pagina
$rowsperpage = 5;
// afla numarul total necesar de pagini
$totalpages = ceil($numrows / $rowsperpage); // ceil face rotunjire la int. maxim
// Obtine pagina curenta sau seteaza default
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
// seteaza variabila ca int
$currentpage = (int) $_GET['currentpage'];
} else {
// pagina care este initial afisata (pagina default)
$currentpage = 1;
}
// daca pagina curenta e mai mare decat total pagini...
if ($currentpage > $totalpages) {
// seteaza pagina curenta la ultima pagina
$currentpage = $totalpages;
}
// daca pagina curenta e mai mica decat prima pagina...
if ($currentpage < 1) {
// seteaza pagina curenta la prima pagina
$currentpage = 1;
}
// lista cu pagini, in functie de pagina curenta
$offset = ($currentpage - 1) * $rowsperpage;
// obtine datele din tabel (MODIFICATI 'nume_tb') din baza de date
$sql = "SELECT
tblsource_code.Id,
tblsource_code.IdUser,
tblsource_code.Descriere,
tblsource_code.SourceCode,
tblsource_code.IdCategorie,
tblsource_code.Data,
tblcategorieSource_code.ID,
tblcategoriesource_code.Denumire,
tblusers.username
FROM tblsource_code
LEFT JOIN
tblcategoriesource_code
ON
tblsource_code.IdCategorie = tblcategoriesource_code.ID
LEFT JOIN
tblusers
ON
tblsource_code.IdUser = tblusers.IdUser
WHERE access= 2 LIMIT $offset, $rowsperpage";
$result = mysql_query($sql) or trigger_error(E_USER_ERROR);
// parcurgerea matricei cu datele obtinute
while ($list = mysql_fetch_assoc($result)) {
// - MODIFICATI numele coloanelor tabelului ('id' si 'texte')
// Stocheaza datele returnate de MySQL in variabile array pt. fiecare coloana
$descriere[] = $list["Descriere"];
$SourceCode[] = $list["SourceCode"];
$Categorie[] = $list ["Denumire"];
$username = $list ["username"];
$data = $list ["Data"];
$id[] = $list ["Id"];
}
mysql_close(); // Incheie conexiunea cu mysql
/*** Afisarea datelor obtinute ***/
// Parcurge variabilele array setate in bucla WHILE
for($i=0; $i<count($id); $i++) {
// Aici puteti adauga cod HTML pentru aspectul grafic al afisarii
echo '<input type="hidden" value='.$id[$i].'>';
echo "<p></br></br>$id[$i] ) $descriere[$i]</br></br></p>";
echo '<p><b>Source Code</b></p>';
echo '<center><textarea readonly="value" rows="25" cols="60" name="source_code" wrap="physical"> '.$SourceCode[$i].'</textarea></center>';
echo '<a href="/licenta/compilator/compilator.php?Id='.$id[$i].'"><center><img src="/licenta/images/send.png"></center></a>';
echo "<p class='post-footer'><span class='dated'>$data</span><span class='category'>$Categorie[$i]</span><span class='author'>$username</span></p>";
}
/*** Construirea link-urilor pt. paginare ***/
// raza nr. link-uri din jurul celui curent
$range = 3;
echo '<center>';
// Link-uri inapoi, daca pagina curenta nu e prima
if ($currentpage > 1) {
// arata << pt. link la prima pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> ";
// obtine nr. pagina din urma
$prevpage = $currentpage - 1;
// arata < pt. link la o pagina in urma
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> ";
}
// definirea link-urilor din raza paginii curente
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
// daca e un nr. de pagina valid ...
if (($x > 0) && ($x <= $totalpages)) {
// daca nr. e pagina curenta ...
if ($x == $currentpage) {
// afiseaza nr. pagina fara a fi link
echo " [<b>$x</b>] ";
// daca nr. nu e pagina curenta ...
} else {
// il face link
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> ";
}
}
}
// Daca pagina curenta nu e ultima, afiseaza link inainte si spre ultima pagina
if ($currentpage != $totalpages) {
// obtine pagina urmatoare
$nextpage = $currentpage + 1;
// arata > pt. urmatoarea pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> ";
// arata >> pt. ultima pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> ";
}
echo '</center>';
?>
prima problmea ar fi la notare , adica in loc sa puna 1,2,3,4,5 etc imi ia id din tabela .
si a doua problmea chiar daca nu depasesc $rowsperpage adica cum am pus eu 5 chiar daca am 4 tot imi arata a doua pagina! cum as putea sa numi arete ce afiseaza codu
Cod: Selectaţi tot
// Link-uri inapoi, daca pagina curenta nu e prima
if ($currentpage > 1) {
// arata << pt. link la prima pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> ";
// obtine nr. pagina din urma
$prevpage = $currentpage - 1;
// arata < pt. link la o pagina in urma
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> ";
}
// definirea link-urilor din raza paginii curente
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
// daca e un nr. de pagina valid ...
if (($x > 0) && ($x <= $totalpages)) {
// daca nr. e pagina curenta ...
if ($x == $currentpage) {
// afiseaza nr. pagina fara a fi link
echo " [<b>$x</b>] ";
// daca nr. nu e pagina curenta ...
} else {
// il face link
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> ";
}
}
}
// Daca pagina curenta nu e ultima, afiseaza link inainte si spre ultima pagina
if ($currentpage != $totalpages) {
// obtine pagina urmatoare
$nextpage = $currentpage + 1;
// arata > pt. urmatoarea pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> ";
// arata >> pt. ultima pagina
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> ";
}