• User

    Pagginazione in un archivio realizato in php

    Salve utenti.

    Apro questa discuzione perchè avrei un problema con uno script di pagginazione preso da un sito inserito in uno archivio che prende file dal db mysql creati personalmente da me, ora io avrei i seguenti problemi con lo script di paginazzione, vi li scrivo qui:

    1. La barra di paginazione presente in forndo alla pagina, alla scritta "Pagina ... di ... (quante pagine totali) " non mi visualiza il numero esatto delle pagine totali

    2. mi continua ad andare alla pagina successiva anche quando la pagina non esiste

    vi scrivo qui sotto il codice:
    [PHP]
    <script language="JavaScript">
    function newWindow(mypage,myname,w,h,features) {
    if(screen.width){
    var winl = (screen.width-w)/2;
    var wint = (screen.height-h)/2;
    }else{winl = 0;wint =0;}
    if (winl < 0) winl = 0;
    if (wint < 0) wint = 0;
    var settings = 'height=' + h + ',';
    settings += 'width=' + w + ',';
    settings += 'top=' + wint + ',';
    settings += 'left=' + winl + ',';
    settings += features;
    win = window.open(mypage,myname,settings);
    win.window.focus();
    }
    </script>
    <table align="center" width="80%" cellpadding="0" cellspacing="0" background="img/stab.png">
    <tr align="center">
    <td width="32%" style="border:solid #003366 1px"><strong>Nome programma </strong></td>
    <td width="37%" style="border:solid 1px"><strong>Piattaforma</strong></td>
    <td width="31%" style="border:solid 1px"><strong>Azioni</strong></td>
    </tr>
    </table>
    <?
    $count = "SELECT COUNT(Id) FROM Download WHERE Visibile = '1'";
    $res_count = mysql_query($mysql);
    // numero totale di records
    $tot_records = $res_count[0];
    // risultati per pagina(secondo parametro di LIMIT)
    $per_page = 10;
    // numero totale di pagine
    $tot_pages = ceil($tot_records / $per_page);
    // pagina corrente
    $current_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
    // primo parametro di LIMIT
    $primo = ($current_page - 1) * $per_page;
    // esecuzione seconda query con LIMIT
    $query_limit = mysql_query("SELECT * FROM Download LIMIT $primo, $per_page");
    while($rs = mysql_fetch_array($query_limit)) {
    echo "<table align='center' width='80%' cellpadding='0' cellspacing='0'><tr align='center'><td width='32%' style='border:solid 1px; border-top:none'>$rs[Nome]</td><td width='37%' style='border:solid 1px; border-top:none'>$rs[Piattaforma]</td><td width='31%' style='border:solid 1px; border-top:none'><a title='Visualizza Descrizioni' href="" onclick="javascript:newWindow('dsc_download.php?dsc=$rs[id]','popup',300,200,'')"><img border='0' src='img/dsc.gif' /></a> <a title='Scarica Programma' href='$rs[Link]'><img border='0' src='img/dwl.gif' /> <a title='Segnala Programma' href='$rs[link]'><img border='0' src='img/posta.gif' /></a></td></tr></table>" ;
    }
    $pag_tot = $tot_pages ;
    if($current_page == 1) { // se siamo nella prima pagina
    $precedente = "« precedente";
    } else { // altrimenti
    $previous_page = ($current_page - 1);
    $precedente = "<a href="index.php?Dir=download&page=$previous_page" title="Pagina precedente">« precedente</a>";
    }
    if($current_page == $tot_pages) { // se siamo nell'ultima pagina
    $successiva = "successiva >>";
    } else { // altrimenti
    $next_page = ($current_page + 1);
    $successiva = "<a href="index.php?Dir=download&page=$next_page" title="Pagina successiva">successiva >></a>";
    }
    $paginazione = "$precedente · $successiva";
    ?>
    <br />
    <table align="right" cellpadding="0" cellspacing="0" style="border:solid 1px">
    <tr>
    <td style="border-left:solid 1px; background:url(img/stab.png)"> Pagina <?=$current_page ?> di <?=$pag_tot ?> </td>
    <td style="border-left:solid 1px"> <?=$paginazione ?></td>
    </tr>
    </table>
    [/PHP]

    spero potete aiutarmi, io da un paio di settimane che ci provo ma non ci riesco :arrabbiato:

    Sito:
    http://sevenjeak.altervista.org

    Obiettivi del sito:
    creare una grande community

    Argomento o settore da studiare:
    Altro (Specificare sotto)

    Argomenti Aggiuntivi:
    Supporto

    Descrizione di particolari problematiche o di specifiche richieste:
    nessuna


  • User

    prova a modificare questo
    @Jeak said:

    [PHP]
    <?
    $count = "SELECT COUNT(Id) FROM Download WHERE Visibile = '1'";
    $res_count = mysql_query($mysql);
    // numero totale di records
    $tot_records = $res_count[0];
    ?>
    [/PHP]

    con questo
    [PHP]
    $count=mysql_query("SELECT COUNT(id) FROM download WHERE visibile='1'");

    $res_count = mysql_fetch_row($count);

    // numero totale di records
    $tot_records = $res_count[0];

    [/PHP]

    :ciauz:


  • User

    @killua85 said:

    prova a modificare questo

    con questo
    [php]
    $count=mysql_query("SELECT COUNT(id) FROM download WHERE visibile='1'");

    $res_count = mysql_fetch_row($count);

    // numero totale di records
    $tot_records = $res_count[0];

    grazie, infatti ora va, mi occore solo di vedere se mi va alla pagina successiva se mi occore, ma ora va, cmq, di che errore si trattava?


  • User

    @Jeak said:

    [PHP]
    <?
    $count = "SELECT COUNT(Id) FROM Download WHERE Visibile = '1'";
    $res_count = mysql_query($mysql);
    // numero totale di records
    $tot_records = $res_count[0];
    ?>
    [/php]

    $res_count=mysql_query($mysql); -->da dove la prendi la variabile $mysql?? poi cosi $res_count ti dara in caso di successo della query un identificativo di risultato che va interpretato con delle funzioni apposite come mysql_fetch_row() che restituisce un array in base alla riga caricata dalla query, cosa questa che tu non facevi quindi non avendo l'array in questione $res_count[0] equivaleva assolutamente a niente ^^ :ciauz: