• User Attivo

    Strano errore di impaginazione con php

    Salve ragazzi,ho un album di foto e praticamente vorrei mostrarne 14 foto per pagina...quando supera le 14 foto far uscire sotto pagina 2 e cosi' via...
    Ho messo su questo codice....

    [php]
    <?
    if (!isset($start) OR $start<0)
    $start=0;
    $step = 14;
    include "config.php";
    //recupero i valori dal form precedente
    $query = "SELECT * FROM libreriaimmagini ORDER BY id_libreria DESC LIMIT $start,$step";
    $result = @mysql_query($query) or die (mysql_error());
    if (mysql_num_rows($result) > 0)
    {
    while($row = mysql_fetch_array($result))

    {$id_libreria = stripslashes($row['id_libreria']);
    $foto_nome = stripslashes($row['foto_nome']);

    ?>
    <a href="#" onclick="scegli(<?echo"$id_libreria"?>,'libreriaimmagini/<?echo"$foto_nome"?>');" width="100" height="100"><img src="libreriaimmagini/<?echo"$foto_nome"?>" id="<?echo"select_$id_libreria"?>" style="margin:0px; border:0px solid #ffffff;width : 100px;height : 100px;border : 0px;" alt="Seleziona l immagine da usare per il tuo link"></a>

    <?

    }}

    $per_pagina = 14;
    $totale_dati = mysql_fetch_row(mysql_query("SELECT COUNT(id_libreria) FROM libreriaimmagini"));
    $totale = $totale_dati[0];
    $totale_pagine = ceil($totale/$per_pagina);
    $pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
    $start = ($pagina_attuale-1)*$per_pagina;

    mysql_query("SELECT * FROM libreriaimmagini ORDER BY id_libreria DESC LIMIT {$start}, {$per_pagina}");
    if($pagina_attuale>0 AND $pagina_attuale<=$totale_pagine){
    echo ($pagina_attuale == 1) ? "Indietro\n" : '<a href="?pag=1">Prima Pagina</a>'."\n".'<a href="?pag='.($pagina_attuale-1).'">Indietro</a>'."\n";

    $max = (($pagina_attuale+2) > $totale_pagine) ? $totale_pagine : ($pagina_attuale+2);
    $min = (($pagina_attuale-2) < 1) ? 1 : ($pagina_attuale-2);
    for($i=$min;$i<=$max;$i++){
    echo " | ";
    echo ($i == $pagina_attuale) ? "$i\n" : '<a href="?pag='.$i.'">'.$i.'</a>'."\n";
    }

    echo ($pagina_attuale == $totale_pagine) ? " Successivo\n" : ' <a href="?pag='.($pagina_attuale+1).'">Successivo</a>'."\n".' <a href="?pag='.$totale_pagine.'">Ultima Pagina</a>'."\n";
    }?>
    [/php]Purtroppo non mi funziona...esce si la barra Pagina 1 - 2 - 3 però quando vado a cambiar pagina succede che cambia si la pagina ma mi mostra a video sempre le foto della prima pagina e non quelle della pagina successiva...come mai??


  • User Attivo

    All'inizio dichiari che se $start non è valorizzato $start è uguale a 0, sottolineo all'inizio.
    La query selezionerà sempre i record da 0 a 14.
    Il primo valore da recuperare è il numero di pagina:
    [PHP]
    $pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
    $start = ($pagina_attuale-1)*$per_pagina;
    [/PHP]


  • User Attivo

    @supercapocc said:

    All'inizio dichiari che se $start non è valorizzato $start è uguale a 0, sottolineo all'inizio.
    La query selezionerà sempre i record da 0 a 14.
    Il primo valore da recuperare è il numero di pagina:
    [php]
    $pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
    $start = ($pagina_attuale-1)*$per_pagina;
    [/php]

    Anche facendo cosi' continuo a visualizzare sempre e solo le prime 14...quando vado alla pagina
    prova2.php?pag=2 oppure prova2.php?pag=3 ect....mi visualizza sempre le prime 14...
    [PHP]
    <?
    $pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
    $start = ($pagina_attuale-1)*$per_pagina;
    $step = 14;
    include "config.php";
    //recupero i valori dal form precedente
    $query = "SELECT * FROM libreriaimmagini ORDER BY id_libreria desc LIMIT $start,$step";
    $result = @mysql_query($query) or die (mysql_error());
    if (mysql_num_rows($result) > 0)
    {
    while($row = mysql_fetch_array($result))

    {$id_libreria = stripslashes($row['id_libreria']);
    $foto_nome = stripslashes($row['foto_nome']);

    ?>
    <a href="#" onclick="scegli(<?echo"$id_libreria"?>,'libreriaimmagini/<?echo"$foto_nome"?>');" width="100" height="100">
    <img src="libreriaimmagini/<?echo"$foto_nome"?>" id="<?echo"select_$id_libreria"?>"
    style="margin:0px; border:0px solid #ffffff;width : 100px;height : 100px;border : 0px;"

    alt="Seleziona l immagine da usare per il tuo link"></a>

    <?

    }}

    $per_pagina = 14;
    $totale_dati = mysql_fetch_row(mysql_query("SELECT COUNT(id_libreria) FROM libreriaimmagini"));
    $totale = $totale_dati[0];
    $totale_pagine = ceil($totale/$per_pagina);
    $pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
    $start = ($pagina_attuale-1)*$per_pagina;

    mysql_query("SELECT * FROM libreriaimmagini ORDER BY id_libreria DESC LIMIT {$start}, {$per_pagina}");
    if($pagina_attuale>0 AND $pagina_attuale<=$totale_pagine){
    echo ($pagina_attuale == 1) ? "Indietro\n" : '<a href="?pag=1">
    Prima Pagina</a>'."\n".'<a href="?pag='.($pagina_attuale-1).'">Indietro</a>'."\n";

    $max = (($pagina_attuale+2) > $totale_pagine) ? $totale_pagine : ($pagina_attuale+2);
    $min = (($pagina_attuale-2) < 1) ? 1 : ($pagina_attuale-2);
    for($i=$min;$i<=$max;$i++){
    echo " | ";
    echo ($i == $pagina_attuale) ? "$i\n" : '<a href="?pag='.$i.'">'.$i.'</a>'."\n";
    }

    echo ($pagina_attuale == $totale_pagine) ? " Successivo\n" : ' <a href="?pag='.($pagina_attuale+1).'">
    Successivo</a>'."\n".' <a href="?pag='.$totale_pagine.'">Ultima Pagina</a>'."\n";
    }?> [/PHP]


  • User Attivo

    Ho risolto cosi'.....
    [PHP]
    <?

    include "config.php";
    $per_pagina = 14;
    $totale_dati = mysql_fetch_row(mysql_query("SELECT COUNT(id_libreria) FROM libreriaimmagini"));
    $totale = $totale_dati[0];
    $totale_pagine = ceil($totale/$per_pagina);
    $pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
    $start = ($pagina_attuale-1)$per_pagina;
    $pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
    $start = ($pagina_attuale - 1)
    $per_pagina; echo"start vale $start";

    //recupero i valori dal form precedente
    $query = "SELECT * FROM libreriaimmagini ORDER BY id_libreria desc LIMIT $start,$per_pagina";
    $result = @mysql_query($query) or die (mysql_error());
    if (mysql_num_rows($result) > 0)
    {
    while($row = mysql_fetch_array($result))

    {$id_libreria = stripslashes($row['id_libreria']);
    $foto_nome = stripslashes($row['foto_nome']);

    ?>
    <a href="#" onclick="scegli(<?echo"$id_libreria"?>,'libreriaimmagini/<?echo"$foto_nome"?>');" width="100" height="100">
    <img src="libreriaimmagini/<?echo"$foto_nome"?>" id="<?echo"select_$id_libreria"?>"
    style="margin:0px; border:0px solid #ffffff;width : 100px;height : 100px;border : 0px;"

    alt="Seleziona l immagine da usare per il tuo link"></a>

    <?

    }}

    $per_pagina = 14;
    $totale_dati = mysql_fetch_row(mysql_query("SELECT COUNT(id_libreria) FROM libreriaimmagini"));
    $totale = $totale_dati[0];
    $totale_pagine = ceil($totale/$per_pagina);
    $pagina_attuale = isset($_GET["pag"]) ? (int)$_GET["pag"] : 1;
    $start = ($pagina_attuale-1)*$per_pagina;

    mysql_query("SELECT * FROM libreriaimmagini ORDER BY id_libreria DESC LIMIT {$start}, {$per_pagina}");
    if($pagina_attuale>0 AND $pagina_attuale<=$totale_pagine){
    echo ($pagina_attuale == 1) ? "Indietro\n" : '<a href="?pag=1">
    Prima Pagina</a>'."\n".'<a href="?pag='.($pagina_attuale-1).'">Indietro</a>'."\n";

    $max = (($pagina_attuale+2) > $totale_pagine) ? $totale_pagine : ($pagina_attuale+2);
    $min = (($pagina_attuale-2) < 1) ? 1 : ($pagina_attuale-2);
    for($i=$min;$i<=$max;$i++){
    echo " | ";
    echo ($i == $pagina_attuale) ? "$i\n" : '<a href="?pag='.$i.'">'.$i.'</a>'."\n";
    }

    echo ($pagina_attuale == $totale_pagine) ? " Successivo\n" : ' <a href="?pag='.($pagina_attuale+1).'">
    Successivo</a>'."\n".' <a href="?pag='.$totale_pagine.'">Ultima Pagina</a>'."\n";
    }?> [/PHP]
    Grazie