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
paginazioneSearch.phpcodice:<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:                              TRIGGER: <form action="http://#######/orquam/search3.php" method="get">          TPC: <input type="checkbox" name="detector1" value="tpc"> TRD: <input type="checkbox" name="detector2" value="trd">                  TOF: <input type="checkbox" name="trigger1" value="tof">                  SPD: <input type="checkbox" name="trigger3" value="spd"> ACORDE: <input type="checkbox" name="detector3" value="acorde"> SSD: <input type="checkbox" name="detector4" value="ssd">                  TRD: <input type="checkbox" name="trigger2" value="trd">                  SSD: <input type="checkbox" name="trigger5" value="ssd">          SDD: <input type="checkbox" name="detector5" value="sdd"> SPD: <input type="checkbox" name="detector6" value="spd">         ACORDE: <input type="checkbox" name="trigger4" value="acorde">                  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>
grazie a tutti quelli che mi aiuteranno!!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 . '&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 .= '« '; } // 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 .= ' »'; } return $link_paginazione; } ?>

Rispondi quotando