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

    Classifica in PHP e aggiornamento indice

    Salve è la prima volta che scrivo perchè grazie a questo forum ho sempre trovato le risposte che cercavo.
    Però purtroppo non riesco ad uscirne fuori dal seguente problema e chiedo aiuto a tutti voi.

    Ho realizzato una classifica che potete vedere al seguente link il problema sta nel fatto che quando vado avanti con la paginazione mi aggiorna correttamente tutto tranne la posizione di classifica che parte sempre da 1.

    Sistemando questa cosuccia potrebbe diventare una risorsa utile per tutti

    Aiutatemi!!!
    Grazie a tutti

    Qui il link
    http://www.inyconmenfi.it/game/class...ging/usage.php

    il codice è il seguente:
    Codice PHP:
    <?php     //Include the PS_Pagination class     include('ps_pagination.php');           //Connect to mysql db     $conn = mysql_connect('62.149.150.116','Sql352913','f8d1f8d8');     if(!$conn) die("Failed to connect to database!");     $status = mysql_select_db('Sql352913_2', $conn);     if(!$status) die("Failed to select database!");     $sql = 'select nome, (select max(punteggio) from utenti where p.nome = nome) as punteggio from utenti p group by nome order by punteggio desc ';           /*      * Create a PS_Pagination object      *      * $conn = MySQL connection object      * $sql = SQl Query to paginate      * 10 = Number of rows per page      * 5 = Number of links      * "param1=valu1&param2=value2" = You can append your own parameters to paginations links      */     $pager = new PS_Pagination($conn, $sql, 10, 5, "param1=valu1&param2=value2");           /*      * Enable debugging if you want o view query errors     */     $pager->setDebug(true);           /*      * The paginate() function returns a mysql result set      * or false if no rows are returned by the query     */ echo "<table border='1'>";              $color="1";     $rs = $pager->paginate();           $i=1;     if(!$rs) die(mysql_error());     while($row = mysql_fetch_assoc($rs)) {                   if($color==1){                   echo "<tr bgcolor='#FFC600'><td align='center' width='170'>"; echo $i; echo "</td><td width='170'>"; echo $row['nome']; echo "</td><td width='170'>"; echo $row['punteggio']; echo "</td><width='170'>"; echo "</td></tr>";                $color="2";     }                    else {                 echo "<tr bgcolor='#ccc'><td align='center' width='170'>"; echo $i; echo "</td><td width='170'>"; echo $row['nome']; echo "</td><td width='170'>"; echo $row['punteggio']; echo "</td><width='170'>"; echo "</td></tr>";     }                    $color="1";                  $i++;     }      echo "</table>";           //Display the full navigation in one go     echo $pager->renderFullNav();           echo "\n";           /*      * Or you can display the individual links for more      * control over HTML rendering.      *     */   ?>

    Qui di seguito invece la libreria per la paginazione

    Codice PHP:
    <?php /**  * PHPSense Pagination Class  *  * PHP tutorials and scripts  *  * @package        PHPSense  * @author        Jatinder Singh Thind  * @copyright    Copyright (c) 2006, Jatinder Singh Thind   */  // ------------------------------------------------------------------------   class PS_Pagination {     var $php_self;     var $rows_per_page = 10; //Number of records to display per page     var $total_rows = 0; //Total number of rows returned by the query     var $links_per_page = 5; //Number of links to display per page     var $append = ""; //Paremeters to append to pagination links     var $sql = "";     var $debug = false;     var $conn = false;     var $page = 1;     var $max_pages = 0;     var $offset = 0;          /**      * Constructor      *      * @param resource $connection Mysql connection link      * @param string $sql SQL query to paginate. Example : SELECT * FROM users      * @param integer $rows_per_page Number of records to display per page. Defaults to 10      * @param integer $links_per_page Number of links to display per page. Defaults to 5      * @param string $append Parameters to be appended to pagination links       */          function PS_Pagination($connection, $sql, $rows_per_page = 10, $links_per_page = 5, $append = "") {         $this->conn = $connection;         $this->sql = $sql;         $this->rows_per_page = (int)$rows_per_page;         if (intval($links_per_page ) > 0) {             $this->links_per_page = (int)$links_per_page;         } else {             $this->links_per_page = 5;         }         $this->append = $append;         $this->php_self = htmlspecialchars($_SERVER['PHP_SELF'] );         if (isset($_GET['page'] )) {             $this->page = intval($_GET['page'] );         }     }          /**      * Executes the SQL query and initializes internal variables      *      * @access public      * @return resource      */     function paginate() {         //Check for valid mysql connection         if (! $this->conn || ! is_resource($this->conn )) {             if ($this->debug)                 echo "MySQL connection missing
    ";             return false;         }                  //Find total number of rows         $all_rs = @mysql_query($this->sql );         if (! $all_rs) {             if ($this->debug)                 echo "SQL query failedCheck your query.

    Error Returned" . mysql_error();             return false;         }         $this->total_rows = mysql_num_rows($all_rs );         @mysql_close($all_rs );                  //Return FALSE if no rows found         if ($this->total_rows == 0) {             if ($this->debug)                 echo "Query returned zero rows.";             return FALSE;         }                  //Max number of pages         $this->max_pages = ceil($this->total_rows / $this->rows_per_page );         if ($this->links_per_page > $this->max_pages) {             $this->links_per_page = $this->max_pages;         }                  //Check the page value just in case someone is trying to input an aribitrary value         if ($this->page > $this->max_pages || $this->page <= 0) {             $this->page = 1;         }                  //Calculate Offset         $this->offset = $this->rows_per_page * ($this->page - 1);                  //Fetch the required result set         $rs = @mysql_query($this->sql . " LIMIT {$this->offset}, {$this->rows_per_page}" );         if (! $rs) {             if ($this->debug)                 echo "Pagination query failedCheck your query.

    Error Returned" . mysql_error();             return false;         }         return $rs;     }          /**      * Display the link to the first page      *      * @access public      * @param string $tag Text string to be displayed as the link. Defaults to 'First'      * @return string      */     function renderFirst($tag = 'First') {         if ($this->total_rows == 0)             return FALSE;                  if ($this->page == 1) {             return "$tag ";         } else {             return '[url="' . $this->php_self . '?page=1&' . $this->append . '"]' . $tag . '[/url] ';         }     }          /**      * Display the link to the last page      *      * @access public      * @param string $tag Text string to be displayed as the link. Defaults to 'Last'      * @return string      */     function renderLast($tag = 'Last') {         if ($this->total_rows == 0)             return FALSE;                  if ($this->page == $this->max_pages) {             return $tag;         } else {             return ' [url="' . $this->php_self . '?page=' . $this->max_pages . '&' . $this->append . '"]' . $tag . '[/url]';         }     }          /**      * Display the next link      *      * @access public      * @param string $tag Text string to be displayed as the link. Defaults to '>>'      * @return string      */     function renderNext($tag = '&gt;&gt;') {         if ($this->total_rows == 0)             return FALSE;                  if ($this->page < $this->max_pages) {             return '[url="' . $this->php_self . '?page=' . ($this->page + 1) . '&' . $this->append . '"]' . $tag . '[/url]';         } else {             return $tag;         }     }          /**      * Display the previous link      *      * @access public      * @param string $tag Text string to be displayed as the link. Defaults to '<<'      * @return string      */     function renderPrev($tag = '&lt;&lt;') {         if ($this->total_rows == 0)             return FALSE;                  if ($this->page > 1) {             return ' [url="' . $this->php_self . '?page=' . ($this->page - 1) . '&' . $this->append . '"]' . $tag . '[/url]';         } else {             return " $tag";         }     }          /**      * Display the page links      *      * @access public      * @return string      */     function renderNav($prefix = '<span class="page_link">', $suffix = '</span>') {         if ($this->total_rows == 0)             return FALSE;                  $batch = ceil($this->page / $this->links_per_page );         $end = $batch * $this->links_per_page;         if ($end == $this->page) {             //$end = $end + $this->links_per_page - 1;         //$end = $end + ceil($this->links_per_page/2);         }         if ($end > $this->max_pages) {             $end = $this->max_pages;         }         $start = $end - $this->links_per_page + 1;         $links = '';                  for($i = $start$i <= $end$i ++) {             if ($i == $this->page) {                 $links .= $prefix . " $i " . $suffix;             } else {                 $links .= ' ' . $prefix . '[url="' . $this->php_self . '?page=' . $i . '&' . $this->append . '"]' . $i . '[/url]' . $suffix . ' ';             }         }                  return $links;     }          /**      * Display full pagination navigation      *      * @access public      * @return string      */     function renderFullNav() {         return $this->renderFirst() . '' . $this->renderPrev() . '' . $this->renderNav() . '' . $this->renderNext() . '' . $this->renderLast();     }          /**      * Set debug mode      *      * @access public      * @param bool $debug Set to TRUE to enable debug messages      * @return void      */     function setDebug($debug) {         $this->debug = $debug;     } } ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    356
    non ho visto il codice poichè è tutto su una riga...e quindi è un po difficile analizzarlo.

    però...visto che allo script passi come parametro il numero di pagina, non basta iniziare a scrivere i numeri nella prima colonna in base a quel numero?

    Visto che metti 10 righe per pagina, la prima pagina dovrà partire da 1, la seconda da 11, la terza da 21 e così via..

    La regola sarà quindi:

    numero iniziale = [(numero_pagina - 1)x 10 ] + 1.

    Se invece lo vuoi rendere ancora più personalizzabile, passi come parametro il numero di righe da far vedere e la formula sarà uguale ma al posto di 10 ci vorrà numero_di_righe.
    Jekkil

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.