Visualizzazione dei risultati da 1 a 2 su 2

Discussione: paginazione

  1. #1

    paginazione

    salve a tutti,

    da scarso conoscitore di php vi pongo questo problema: ho copiato un metodo per pubblicare i risultati di una query su piu' di una pagina e l'ho applicato al mio db.
    Tutto ok....ma c'e' una cosa che non riesco a fare; se la query contiene al suo interno una variabile, non riesco a passare questa variabile alle varie pagine e la query non viene effettuata come voglio.
    Vi posto i tre file cosi' e' piu' facile...(salto il .html altrimenti il messagio e' troppo lungo)

    search3.php
    codice:
    <html>
    
    <title>ORQUAM</title>
    <h1 align="center">Offline Run QUAlity Monitor</h1>
    <body bgcolor="gray">
    
    <h3 align="center">All selected runs</h3>
    
    <a href="http://######/orquam/cosmics_web.html">
    Back</a>-
    <a href="http://######/orquam/quality3_web.html">
    Home</a>
    
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    
    DETECTOR:
    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp     TRIGGER:
    <form action="http://#######/orquam/search3.php" method="get">
    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp      TPC:
    <input type="checkbox" name="detector1" value="tpc">
    TRD: 
    <input type="checkbox" name="detector2" value="trd">
    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp     TOF:
    <input type="checkbox" name="trigger1" value="tof">
    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp     SPD:
    <input type="checkbox" name="trigger3" value="spd">
    
    
    ACORDE: 
    <input type="checkbox" name="detector3" value="acorde">
    SSD:
    <input type="checkbox" name="detector4" value="ssd">
    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp     TRD:
    <input type="checkbox" name="trigger2" value="trd">
    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp     SSD:
    <input type="checkbox" name="trigger5" value="ssd">
    
    
    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp      SDD:
    <input type="checkbox" name="detector5" value="sdd">
    SPD:
    <input type="checkbox" name="detector6" value="spd">
    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp     ACORDE:
    <input type="checkbox" name="trigger4" value="acorde">
    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp     SDD:
    <input type="checkbox" name="trigger6" value="sdd">
    
    
    <input type="submit" value="Submit">
    </form> 
    
    <?php 
    
    $det1=$_REQUEST["detector1"];
    $det2=$_REQUEST["detector2"];
    $det3=$_REQUEST["detector3"];
    $det4=$_REQUEST["detector4"];
    $det5=$_REQUEST["detector5"];
    $det6=$_REQUEST["detector6"];
    $trg1=$_REQUEST["trigger1"];
    $trg2=$_REQUEST["trigger2"];
    $trg3=$_REQUEST["trigger3"];
    $trg4=$_REQUEST["trigger4"];
    $trg5=$_REQUEST["trigger5"];
    $trg6=$_REQUEST["trigger6"];
    $Det=$_REQUEST["Det"];
    
    if ($det1=="tpc")
         $Det1 = sprintf("AND tpc='x'");
             
         if ($det2=="trd")
         $Det2 = sprintf("%sAND trd='x'",$Det1);
            
         if ($det3=="acorde")
         $Det3 = sprintf("%sAND acorde='x'",$Det2);
              
         if ($det4=="ssd")
         $Det4 = sprintf("%sAND ssd='x'",$Det3);
             
         if ($det5=="sdd")
         $Det5 = sprintf("%sAND sdd='x'",$Det4);
              
         if ($det6=="spd")
         $Det6 = sprintf("%sAND spd='x'",$Det5);
            
         if ($trg1=="tof")
         $Trg1 = sprintf("AND trigger1='TOF'",$Det6);
         
         if ($trg2=="trd")
         $Trg2 = sprintf("AND trigger2='TRD'",$Trg1);
         
         if ($trg3=="spd")
         $Trg3 = sprintf("AND trigger3='SPD'",$Trg2);       
         
         if ($trg4=="acorde")
         $Trg4 = sprintf("AND trigger4='ACORDE'",$Trg3);       
         
         if ($trg5=="ssd")
         $Trg5 = sprintf("AND trigger5='SSD'",$Trg4);       
         
         if ($trg6=="sdd")
         $Trg6 = sprintf("AND trigger6='SDD'",$Trg5);  
    
         $Det = sprintf("%s %s %s %s %s %s %s %s %s %s %s %s",$Det1,$Det2,$Det3,$Det4,$Det5,$Det6,$Trg1,$Trg2,$Trg3,$Trg4,$Trg5,$Trg6);
         //echo $Det;
         
         include 'paginazioneSearch.php';
         
         $DB_host     = '########';
         $DB_user     = '#######';
         $DB_password = '#######';
         $DB_name     = '########';
         
         $righe_per_pagina = 5;
         $url_base = "search3.php";
         $pagine_vicine = 2;
         
         // ----------------------------------------------------------------
         //         C O N N E S S I O N E   A L   D A T A B A S E
         
         $link = mysql_connect($DB_host, $DB_user, $DB_password);
         if (!$link) {
           die ('Non riesco a connettermi: ' . mysql_error());
         }
    
    $db_selected = mysql_select_db($DB_name, $link);
    if (!$db_selected) {
      die ("Errore nella selezione del database: " . mysql_error());
    }
    
    // ----------------------------------------------------------------
    //    C A L C O L O   D E L   N U M E R O   D I   P A G I N E
    
    // ricavo il numero totale di record
    $query = "SELECT COUNT(*) FROM runs where jolly='Null' $Det";
    //$query = "SELECT COUNT(*) FROM runs";
    //echo $query;
    $result = mysql_query($query);
    
    // record complessivi
    $tot_righe = mysql_result($result,0);
    // totale pagine
    $tot_pagine = ceil($tot_righe / $righe_per_pagina);
    
    // ----------------------------------------------------------------
    //                 P A G I N A   C O R R E N T E
    
    $pagina_corrente = isset($_GET['pag']) ? (int)$_GET['pag'] : 1;
    
    // se la pagina corrente è minore di 1
    if($pagina_corrente < 1)  {
      header('location: ' . $url_base);
      exit();
    }
    
    // se la pagina corrente è maggiore dell'ultima pagina
    if($pagina_corrente > $tot_pagine) {
      header('location: ' . crea_url($url_base, $tot_pagine));
      exit();
    }
    
    // ----------------------------------------------------------------
    //            E S T R A Z I O N E   D E I   R E C O R D
    
    // calcolo la prima riga da estrarre con la query
    $prima_riga = ($pagina_corrente - 1) * $righe_per_pagina;
    
    $query = "SELECT *
              FROM runs where jolly='Null' $Det
              LIMIT $prima_riga, $righe_per_pagina";
    echo $query;
    $result = mysql_query($query);
    if (!$result) {
      die("Errore nella query $query: " . mysql_error());
    }
    
    $runs_list = array();
    while ($row = mysql_fetch_assoc($result)) {
      $runs_list[] = $row;
    }
    
    // creazione dei link di paginazione
    $link_paginazione = paginazione($tot_pagine, $url_base, $pagina_corrente, $pagine_vicine, $Det);
    
    // carico il template HTML
    include 'runsIndexSearch.html';
    ?>
    
    </html>
    paginazioneSearch.php
    codice:
    <?php
    function crea_url($url_base, $pagina, $Det) {
      if(strpos($url_base,'?') === false) {
            return $url_base . '?pag=' . $pagina . '?Det=' . $Det;
        } else {
          return $url_base . '&amp;pag=' . $pagina;
        }
    }
    
    function crea_link($url_base, $pagina_corrente, $numero_pagina) {
        if($pagina_corrente == $numero_pagina) {
            return "[$numero_pagina]";
        } else {
            return '' . $numero_pagina . '';
        }
    }
    
    // funzione che crea i link alle pagine dei risultati
    function paginazione($tot_pagine, $url_base, $pagina_corrente, $pagine_vicine) {
        $link_paginazione = "Pages: ";
      
        // link alla pagina precedente
        if($pagina_corrente != 1) {
            $link_paginazione .= '&laquo; ';
        }
     
        // mostriamo sempre il link alla prima pagina
        $link_paginazione .= crea_link($url_base, $pagina_corrente, 1);
      
        // se il prossimo link non è alla seconda pagina aggiungo dei puntini ...
        // oppure la sola pagina mancante
        if($pagina_corrente - $pagine_vicine > 2) {
            if($pagina_corrente - $pagine_vicine == 3) {
                $link_paginazione .= " " . crea_link($url_base, $pagina_corrente, 2);
            } else {
                $link_paginazione .= " ... ";
            }
        }
      
        // creo i link alla pagina corrente ed a quelle ad essa vicine
        for($i = $pagina_corrente - $pagine_vicine; $i <= $pagina_corrente + $pagine_vicine; $i++) {
             // se tra quelle vicine c'è la prima pagina (già riportata)
            if($i < 2) continue;
          
             // se tra quelle vicine c'è l'ultima pagina (che mostrerò con le prossime istruzioni)
            if($i > $tot_pagine - 1) continue;
          
            $link_paginazione .= " " . crea_link($url_base, $pagina_corrente, $i);
        }
      
        // se il precedente link non era alla penultima pagina aggiungo dei puntini ...
        // oppure la sola pagina mancante
        if($pagina_corrente + $pagine_vicine < $tot_pagine - 1) {
            if($pagina_corrente + $pagine_vicine == $tot_pagine - 2) {
                $link_paginazione .= " " . crea_link($url_base, $pagina_corrente, $tot_pagine - 1) . " ";
            } else {
                $link_paginazione .= " ... ";
            }
        }
      
        // mostriamo il link all'ultima pagina se questa non coincide con la prima
        if($tot_pagine != 1) {
            $link_paginazione .= " " . crea_link($url_base, $pagina_corrente, $tot_pagine);
        }
      
        // link alla pagina successiva
        if($pagina_corrente != $tot_pagine) {
            $link_paginazione .= ' &raquo;';
        }
      
        return $link_paginazione;
    }
    ?>
    grazie a tutti quelli che mi aiuteranno!!

  2. #2
    nessuno mi aiuta?...please

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.