Paginatie informatii extrase dintr-o tabela mysql
Va rog sa ma ajutati:
Cod:
<?php
$test=mysql_query("SELECT * FROM anunturi order by id asc limit 1,10" );
while($test1 = mysql_fetch_array($test))
{
echo "<div id='listaanunturi'>".$test1[1]."<br><br>".$test1[2]."</div>";
}
?>
Am de ex: 100 anunturi in baza de date, vreau sa afisez 10 pe prima pagina, apoi sa am un link catre urmatoarele 10 si tot asa pana la final.
Ce ar trebui sa fac? probabil trebuie sa lucrez cu atributul limit
2 Ataşament(e)
am incercat sa modific codul meu dupa primul exemplu
Am incercat sa modific codul meu dupa primul exemplu si nu functioneaza:
Cod:
<?php $ultimele_anunturi=mysql_query("SELECT * FROM anunturi order by id asc " );
//verificare numar total de anunturi
$total_anunturi = mysql_num_rows($ultimele_anunturi);
//verificare daca exista variabila pagina_anunturi, daca nu o fortez sa fie 1
if (isset($_GET['pagina_anunturi']))
{//filtrez pagina_anunturi sa fie valoare intreaga;
$pagina_anunturi = intval ($pagina_anunturi);
}
else {
$pagina_anunturi = 1;
}
//stabilesc numarul de anunturi ce vreau sa fie afisate pe o pagina
$anunturi_pe_pagina = 10;
// calculez care e ultima pagina, prin impartirea numarului total de anunturi la anunturile afisate pe pagina si rotunjim cu functia ceil
$ultima_pagina=ceil($total_anunturi/$anunturi_pe_pagina);
//verificam ca pagina cu anunturi sa nu fie mai mica decat 1 sau mai mare decat ultima pagina
if ($pagina_anunturi < 1) { $pagina_anunturi= 1;}
else if ($pagina_anunturi > $ultima_pagina) { $pagina_anunturi = $ultima_pagina;}
$continut_centru = "";
$inapoi = $pagina_anunturi - 1;
$inapoi2 = $pagina_anunturi - 2;
$inainte = $pagina_anunturi + 1;
$inainte2 = $pagina_anunturi + 2;
if ($pagina_anunturi == 1) {
$continut_centru .= ' <span class="pagNumActive">' . $pagina_anunturi . '</span> ';
$continut_centru .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pagina_anunturi=' . $inainte . '">' . $inainte . '</a> ';
} else if ($pagina_anunturi == $ultima_pagina) {
$continut_centru .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pagina_anunturi=' . $inapoi . '">' . $inapoi . '</a> ';
$continut_centru .= ' <span class="pagNumActive">' . $pagina_anunturi . '</span> ';
} else if ($pagina_anunturi > 2 && $pagina_anunturi < ($ultima_pagina - 1)) {
$continut_centru .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pagina_anunturi=' . $inapoi2 . '">' . $inapoi2 . '</a> ';
$continut_centru .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pagina_anunturi=' . $inapoi . '">' . $inapoi . '</a> ';
$continut_centru .= ' <span class="pagNumActive">' . $pagina_anunturi . '</span> ';
$continut_centru .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pagina_anunturi=' . $inainte . '">' . $inainte . '</a> ';
$continut_centru .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pagina_anunturi=' . $inainte2 . '">' . $inainte2 . '</a> ';
} else if ($pagina_anunturi > 1 && $pagina_anunturi < $ultima_pagina) {
$continut_centru .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pagina_anunturi=' . $inapoi . '">' . $inapoi . '</a> ';
$continut_centru .= ' <span class="pagNumActive">' . $pn . '</span> ';
$continut_centru .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pagina_anunturi=' . $inainte . '">' . $inainte . '</a> ';
}
//stabilim limita
$limita = 'LIMIT'.($pagina_anunturi-1)*$anunturi_pe_pagina.','.$anunturi_pe_pagina;
$ultimele_anunturi2 = mysql_query("SELECT id, titlu, detaliianunt FROM anunturi ORDER BY id ASC $limita");
$pagina_afisata = ""; // Initialize the pagination output variable
// This code runs only if the last page variable is ot equal to 1, if it is only 1 page we require no paginated links to display
if ($ultima_pagina != "1"){
// This shows the user what page they are on, and the total number of pages
$pagina_afisata .= 'Page <strong>' . $pagina_anunturi . '</strong> of ' . $ultima_pagina. ' ';
// If we are not on page 1 we can place the Back button
if ($pagina_anunturi != 1) {
$prev = $pagina_anunturi - 1;
$pagina_afisata .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pagina_anunturi=' . $prev . '"> Back</a> ';
}
// Lay in the clickable numbers display here between the Back and Next links
$pagina_afisata .= '<span class="paginationNumbers">' . $continut_centru . '</span>';
// If we are not on the very last page we can place the Next button
if ($pagina_anunturi != $ultima_pagina) {
$next = $pagina_anunturi + 1;
$pagina_afisata .= ' <a href="' . $_SERVER['PHP_SELF'] . '?pagina_anunturi=' . $next . '"> Next</a> ';
}
}
while($ultimele_adaugate = mysql_fetch_array($ultimele_anunturi2))
{
$id = $ultimele_adaugate["id"];
$titlu = $ultimele_adaugate["titlu"];
$detaliianunt = $ultimele_adaugate["detaliianunt"];
$rezultate = $titlu."<br><br>".$detaliianunt;
}
?>
<div style="margin-left:64px; margin-right:64px;">
<h2>Total anunturi: <?php echo $total_anunturi; ?></h2>
</div>
<div style="margin-left:58px; margin-right:58px; padding:6px; background-color:#FFF; border:#999 1px solid;"><?php echo $pagina_afisata; ?></div>
<div id='listaanunturi' ><?php echo $rezultate; ?></div>
Nu-mi afiseaza variabila $pagina_afisata, dar nici nu-mi da erroare
Am atasat doua poze: in paginatie2 imi afiseaza acea erroare, daca scot variabila $limita din mysql_query nu mai primesc erroarea insa imi afiseaza doar un anunt iar in baza de date am 3 anunturi.
Va rog fiti ingaduitori cu mine...astept sugestii!