Visualizzazione dei risultati da 1 a 10 su 10

Discussione: multipagina irregolare

  1. #1

    multipagina irregolare

    ciao a tutti!

    ho creato un multipagina in php seguendo anche le pillole qui nel forum, e funzionava tutto alla perfezione...
    poi l'ho dato in mano a chi doveva effettuare i test, ed è successo un casino...
    ora appaiono 1 o 2 annunci per pagina, senza alcun senso logico, e solo nelle ultime pagine ne appaiono 9 come dovrebbe essere! quale potrebbe essere la causa?

    vi posto il link così potete controllare: clicca qui
    se provate a scorrere le pagine vi accorgerete che succedono cose ai limiti del paranormale


  2. #2
    Mi sa che e' meglio se posti il codice...

    Intanto una cosa che ho notato e' che la variabile GET "page" viene accodata alla semplice querystring della pagina, e il risultato e' che cliccando consecutivamente sui link delle pagine, vengono accodate nuove variabili "page" ogni volta... nel link infatti c'e' una fila di variabili GET "page" alla fine...

  3. #3
    ho notato pur io questa cosa... però perchè in certe pagine tutto funziona perfettamente, e da quando hanno fatto i test è successo sto casino? non può essere un problema di database?
    il codice per la sola paginazione è questo:
    Codice PHP:
    // offerte
      
    if(!($count1=mysql_query($query_dati1,$link))) {
        echo 
    "Errore";
        
    error_log(mysql_error()."\n"3"/tmp/phplog.err");
      }
      
      
    $tot_records mysql_num_rows ($count1);
      
    $per_page10;
      
    $tot_pages ceil ($tot_records/$per_page);
      
    $current_page = (!$_GET['page'] ? : (int)$_GET['page']);
      
    $primo = ($current_page 1) * $per_page;
      
      
    $query_dati1_limit $query_dati1." LIMIT $primo$per_page";
      
      if(!(
    $query_limit1 mysql_query($query_dati1_limit,$link))) {
        echo 
    "Errore";
        
    error_log(mysql_error()."\n"3"/tmp/phplog.err");
      }
      
      
    $cnt_offerte=0;
      while(
    $titlelist1 mysql_fetch_array($query_limit1)) {
        if(
    $titlelist1["STATOADMIN"]=='P' || $titlelist1["STATOADMIN"]=='G'//Controllo sullo stato dell'annuncio C-A-P-B-G
          
    $res_offerte[$cnt_offerte++]=$titlelist1;
      }
      
      
    //$tot_pages = 30;
      
    $nlink 5;
      if (
    $tot_pages==0) {
      
    $paginazione '';
      } else {
      
    $paginazione "Pagine totali: ".$tot_pages."[";
      
    //$paginazione = "Pagine totali: ".$tot_pages."";
      
    if($tot_pages <= $nlink) { 
            if (
    $current_page>1){ 
                
    $paginazione .= "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&page=".($current_page-1)."\" title=\"Precedenti\" class=\"linksx\">&laquo;</a>"
            } 
              for (
    $i=1;$i<=$tot_pages;$i++) {
                if (
    $i == $current_page) {
                    
    $paginazione .= " <span style=\"font-weight:bold;color:#1843B3\">".$i."</span>";
                } else {
                    
    $paginazione .= " <a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&page=$i\" title=\"Vai alla pagina $i\" class=\"linksx\">$i</a> ";
                }
              }
            if (
    $current_page<$tot_pages) {             
                 
    $paginazione .= "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&page=".($current_page+1)."\" title=\"Successive\" class=\"linksx\">&raquo;</a>"
            } 
      }
      else if (
    $current_page <= ceil($nlink/2)){ 
           if (
    $current_page>1){ 
                
    $paginazione .= "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&page=".($current_page-1)."\" title=\"Precedenti\" class=\"linksx\">&laquo;</a>"
           }            
           for (
    $i=1$i<=$nlink$i++) { 
                if (
    $i == $current_page) {
                    
    $paginazione .= " <span style=\"font-weight:bold;color:#1843B3\">".$i."</span>";
                } else {
                    
    $paginazione .= " <a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&page=$i\" title=\"Vai alla pagina $i\" class=\"linksx\">$i</a> ";
                }
           } 
           
    $paginazione .= "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&page=".($current_page+1)."\" title=\"Successive\" class=\"linksx\">&raquo;</a>";               
      } 
      else if (
    $current_page>$tot_pages-ceil($nlink/2)) { 
            
    $paginazione .= "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&page=".($current_page-1)."\" title=\"Precedenti\" class=\"linksx\">&laquo;</a>";                  
            for (
    $i=1$i<=$nlink$i++) { 
                if (
    $i == $current_page) {
                    
    $paginazione .= " <span style=\"font-weight:bold;color:#1843B3\">".$i."</span>";
                } else {
                    
    $paginazione .= " <a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&page=$i\" title=\"Vai alla pagina $i\" class=\"linksx\">$i</a> ";
                }
            } 
            if (
    $current_page<$tot_pages){             
            
    $paginazione .= "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&page=".($current_page+1)."\" title=\"Successive\" class=\"linksx\">&raquo;</a>";    
            } 
       } 
       else { 
          
    $paginazione .= "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&page=".($current_page-1)."\" title=\"Precedenti\" class=\"linksx\">&laquo;</a>";    
          for (
    $i=$current_page-ceil($nlink/2-1); $i<=$current_page+ceil($nlink/2-1); $i++){ 
                if (
    $i == $current_page) {
                    
    $paginazione .= " <span style=\"font-weight:bold;color:#1843B3\">".$i."</span>";
                } else {
                    
    $paginazione .= " <a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&page=$i\" title=\"Vai alla pagina $i\" class=\"linksx\">$i</a> ";
                }
          } 
          
    $paginazione .= "<a href=\"".$_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING']."&page=".($current_page+1)."\" title=\"Successive\" class=\"linksx\">&raquo;</a>";   
       }

      
    //
      
    $paginazione .="]";
      }


  4. #4
    La prima parte, quella che si occupa di gestire la query a seconda della pagina in cui si trova, mi sembra ok dall'occhiata che ho dato...

    C'e' qualche cosa che non va nel codice di paginazione per quanto riguarda la stampa dei link alle varie pagine, visto che non fa vedere le pagine dalla 6 in poi ...

    Quella cosa del querystring che ti dicevo e' relativa alla variabile "$_SERVER['QUERY_STRING']" che includi nel percorso dei link delle varie pagine. QUERY_STRING ovviamente includera' anche l'eventuale variabile "page" presente nell'URL, quindi ogni ulteriore click aggiungera' via via un'altra variabile "page" alla fine della stringa...

    La sezione che stampa i link alle pagine la rivedrei un po' tutta...

    Purtroppo ora non posso dedicarci piu' tempo... controlla la query che viene passata (questa: $query_dati1), magari c'e' qualche cosa che non va li' ...

  5. #5
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    ho notato pur io questa cosa... però perchè in certe pagine tutto funziona perfettamente, e da quando hanno fatto i test è successo sto casino? non può essere un problema di database?
    oltre ai suggerimenti (che codivido) di Darsch2501, hai la possibilità di vedere le tabelle del db? forse c'è stata qualche operazione nn andata abuon fine ( ad esempio qualche inserimento nn ha funzionato) quindi ci potrebbero essere delle righe incomplete... da qui il fatto che nn le visualizzi cmq io controllerei la tabella...

  6. #6
    sì io penso sia un problema del db, perchè fino a due giorni fa tutto andava benissimo.. ovviamente c'è da sistemare il discorso del page che si ripete nella query string..
    è giusto che arrivi fino alla pagina 6, lo script è fatto apposta così

  7. #7
    è giusto che arrivi fino alla pagina 6, lo script è fatto apposta così
    Cioe' mostra solo le prime 5 pagine e nelle altre non vuoi che ci entrino?

    EDIT: Prima intendevo che non le mostra neanche se selezioni una pagina superiore alla 5 ... dovrebbe farle vedere a blocchi no? Se invece selezioni '>>' lui va alla pagina 6, ma non cambia blocco, fa sempre vedere le prime 5...

  8. #8
    hai ragione c'è qualcosa che non torna.. ora verifico

    cmq la ripezione del parametro page nella query string non è eliminabile ma non credo sia un problema perchè in ogni caso tiene conto solo dell'ultimo valore assegnato no?

  9. #9
    cmq la ripezione del parametro page nella query string non è eliminabile ma non credo sia un problema perchè in ogni caso tiene conto solo dell'ultimo valore assegnato no?
    E' comunque un'anomalia e non e' molto elegante. Considera poi che se ci sono altri link all'interno della pagina che lavorano sempre sulla querystring (come magari i link per ordinare le colonne) e uno si mette a cliccare varie volte e a navigare per le varie pagine (e puo' capitare) prima o poi finiscono i caratteri disponibili per l'indirizzo, e li' inizia a non cambiare piu' pagina o a non comportarsi piu' come dovrebbe...

    La ripetizione del parametro della query e' eliminabile cambiando la logica del codice che sta alla base... oppure se non vuoi rivoluzionare tutto puoi usare qualche tecnica di ripego, tipo filtrare la QUERY_STRING tramite una espressione regolare che ti tolga l'eventuale "&page=xxxxxx" presente... ^_^

  10. #10
    Originariamente inviato da Darsch2501
    La ripetizione del parametro della query e' eliminabile cambiando la logica del codice che sta alla base... oppure se non vuoi rivoluzionare tutto puoi usare qualche tecnica di ripego, tipo filtrare la QUERY_STRING tramite una espressione regolare che ti tolga l'eventuale "&page=xxxxxx" presente... ^_^
    ok vedrò di sistemare, cmq sembra che per il resto i problemi risiedessero nel database

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.