Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Paginazione e Ordinamento campi Tabella Php e Mysql

    Salve a tutti..sono disperato..devo far funzionare questo piccolo codice in php e Mysql..l'intento sarebbe quello di avere i risultati della query divisibili per numero di pagine e ordinabili cliccando l'intestazione della tabella.

    Questo è il sito che dovrebbe contenere questo script:

    http:\\www.iw5bef.it sezione \moto.html

    Vi posto il mio script:


    <?php
    $cn = mysql_connect("127.0.0.1", "root", ""); //Creo la connessione
    mysql_select_db("database", $cn); //seleziono il db
    // Controllo se esite gia il numero di pagina, altrimenti lo setto a 1
    @$pag = $_GET["pag"];
    if (isset($pag) == false || is_numeric($pag) == false || $pag < 1) {
    $pag = 1;
    }

    // Genero le variabili che stanno a rappresentare quali record da estrarre dal DB
    $fine = 2;
    $inizio = ($pag - 1) * $fine;

    // Creo la query con LIMIT
    $sql = "SELECT * FROM prova LIMIT " . $inizio . ", " . $fine;

    //Svolgo la mia query, e calcolo i record totali che mi ha ristituito
    $query = mysql_query($sql, $cn);
    $quanti = mysql_num_rows($query);

    if ($quanti == 0) {
    echo "Nessun record!";
    } else {
    for ($x = 0; $x < $quanti; $x++) {
    @$rs = mysql_fetch_row($query); //Effettuo il fetch_array sul risultato
    $nome_campo = $rs[0];
    $query = "select prezzo,marca,immagine,anno from prova ";
    $rs = mysql_query($query) or die(mysql_error());
    $num = mysql_num_rows($rs);

    if ($num == 0)
    echo "<div style=\"text-align:center\">Nessun contatto presente</div>";
    else {
    if (empty($_GET['ordercampo']))
    $_GET['ordercampo'] = "prezzo";

    if (empty($_GET['order']))
    $_GET['order'] = "asc";

    if ($_GET['order'] == "asc") {
    $ordinaVerso = "desc";
    }
    if ($_GET['order'] == "desc") {
    $ordinaVerso = "asc";
    }
    $query = "select prezzo,marca,immagine,anno from prova order by $_GET[ordercampo] $ordinaVerso ";
    $rs = mysql_query($query) or die(mysql_error());
    ?>
    <table border="1">
    <tr>
    <td align="center">&ordercampo=<?php echo 'marca' ?>&order=<?php echo $ordinaVerso ?>" title="Inverti ordinamento">Marca</td>
    <td align="center">&ordercampo=<?php echo 'anno' ?>&order=<?php echo $ordinaVerso ?>" title="Inverti ordinamento">Anno</td>
    <td align="center">&ordercampo=<?php echo 'immagine' ?>&order=<?php echo $ordinaVerso ?>" title="Inverti ordinamento">Immagine</td>
    </tr>
    <?php
    while ($results = mysql_fetch_array($rs)) {
    echo "<tr>";
    $idcontatto = $results['prezzo'];
    echo "<td width=\"25%\">$results[marca]</td>";
    echo "<td width=\"25%\">$results[anno]</td>";
    echo "<td width=\"25%\">$results[immagine]</td>";
    echo "</tr>";
    } //fine ciclo while
    } //fine else nel caso ci sia almeno un contatto nel comune

    echo" </table>";
    }
    }
    // Trovo il numero di tutti i record presenti nella tabella
    $query = mysql_query("SELECT * FROM prova", $cn);
    $quanti = mysql_num_rows($query);

    $intero = $quanti / $fine; //Calcolo il numero di pagine totali
    $intero = ceil($intero);
    ?>


    Pagina <?php echo $pag; ?> di <?php echo $intero; ?></p>





    <?php
    //Effettuo un for che mi scrive tutti i link alle relative pagine
    for ($x = 1; $x < $intero + 1; $x++) {
    if ($x == $pag) {
    ?>

    <?php echo $x; ?> |

    <?php
    } else {
    ?>

    <?php echo $x; ?> |

    <?php
    }
    }
    ?>

    </p>

    <?php
    mysql_close($cn); //chiudo la connessione
    ?>

    Ordinamento




    Prova


    Il problema è che mi ripete la tabella in tutte le pagine, mentre io vorrei solo far ripeter l'intestazione della tabella, per ogni pagina, e decidere quante righe far scrivere nella rispettiva pagina.
    Ovviamento se decido di ordinare per esempio per "marca", lo script deve redistribuire le varie righe nelle rispettive pagine, mutandone l'ordinamento.

    Grazie mille per il contributo di tutti..


    P.S.:ho notato in giro per la rete che non ci sono molti script inerenti questi due argomenti..se ne trovate linkatemeli per favore..

  2. #2
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    invece di caricare inutilmente il database con query di ordinamento..usa javascript...con precisione jquery..... vai qui....
    http://tablesorter.com/docs/
    è un 'ottima alternativa..
    ciao

  3. #3
    Grazie mille hyde82 per la celere risposta.. :-)

    quindi te dici di utilizzare la parte di codice in php per "paginare" e utilizzare jquery per l'ordinamento giusto?

    Non so se hai visto il sito web..l'esempio caricato già usa javascript..ma siccome l'elenco è molto lungo, devo per forze "spezzare" il contenuto in più pagine..verranno una 20 con 30 elementi per pagina circa..

    Mi metto subito all'opera..appena è pronto lo script lo pubblico qui nel Thread..

    Grazie ancora per la risposta..

    a presto..
    Realizzazione siti internet e posizionamento nei motori di ricerca.

    web-siena.it

  4. #4
    Rieccomi..hyde82..

    Allora..io ho implementato il tablesort in Jquery..molto carino..ma ripensandoci..non credo faccia al caso mio..io devo dividere i risultati in più pagine..è possibile con Jquery..???


    Ti ringrazio ancora per l'interesse..se anche qualche altro utente può darmi una mano lo ringrazio anticipatamente!!! :-) :-) .


    Mi piacerebbe risolvere (o sono costretto!?!?) il problema con Php e Mysql..
    Realizzazione siti internet e posizionamento nei motori di ricerca.

    web-siena.it

  5. #5

    Aggiornamento

    Ciao di nuovo..

    Ho trovato un sito che ha un esempio di quello che vorrei fare..eccovi il link..:


    http://mavimo.org/drupal/tabella_pag...inabile_drupal articolo

    http://mavimo.org/elenco_prodotti esempio funzionante


    L'unico problema è che è realizzato con un CMS, Drupal..e io non lo so usare..


    Quello che vorrei creare è esattamente come nell'esempio, con l'aggiunta di una colonna dove vi sono delle immagini lincabili..

    aspetto con ansia una vostra risposta.

    Saluti a tutti.
    Realizzazione siti internet e posizionamento nei motori di ricerca.

    web-siena.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.