[php/mysql] Dividere il risultato di una query su più pagine

isidoro80

Utente Attivo
124
0
ciao a tutti per dividere il risultato coè il numero di record su più pagine ho utilizzato questo script soltanto che quando clicco sul collegamento avanti o indietro non mi visualizza più i record corrispondenti ai parametri della ricerca non capisco perchè mi potete dare un aiutino?




Codice:
$currentPage = $HTTP_SERVER_VARS["PHP_SELF"];

$maxRows_Recordset1 = 30;
$pageNum_Recordset1 = 0;
if (isset($HTTP_GET_VARS['pageNum_Recordset1'])) {
  $pageNum_Recordset1 = $HTTP_GET_VARS['pageNum_Recordset1'];
}
$startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;

//adesso faccio la query

$varcoltura_Recordset1 = "%";
if (isset($_POST['coltura'])) {
  $varcoltura_Recordset1 = (get_magic_quotes_gpc()) ? $_POST['coltura'] : addslashes($_POST['coltura']);
}
$varepoca_Recordset1 = "%";
if (isset($_POST['epoca'])) {
  $varepoca_Recordset1 = (get_magic_quotes_gpc()) ? $_POST['epoca'] : addslashes($_POST['epoca']);
}
$varpa_Recordset1 = "%";
if (isset($_POST['pa'])) {
  $varpa_Recordset1 = (get_magic_quotes_gpc()) ? $_POST['pa'] : addslashes($_POST['pa']);
}
$varinfestante_Recordset1 = "%";
if (isset($_POST['infestante'])) {
  $varinfestante_Recordset1 = (get_magic_quotes_gpc()) ? $_POST['infestante'] : addslashes($_POST['infestante']);
}
mysql_select_db($database_diserbo, $diserbo);
$query_Recordset1 = sprintf("SELECT DISTINCT ........", $varcoltura_Recordset1,$varpa_Recordset1,$varinfestante_Recordset1,$varepoca_Recordset1);
$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);
$Recordset1 = mysql_query($query_limit_Recordset1, $diserbo) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);

//seconda parte

if (isset($HTTP_GET_VARS['totalRows_Recordset1'])) {
  $totalRows_Recordset1 = $HTTP_GET_VARS['totalRows_Recordset1'];
} else {
  $all_Recordset1 = mysql_query($query_Recordset1);
  $totalRows_Recordset1 = mysql_num_rows($all_Recordset1);
}
$totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;

$queryString_Recordset1 = "";
if (!empty($HTTP_SERVER_VARS['QUERY_STRING'])) {
  $params = explode("&", $HTTP_SERVER_VARS['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_Recordset1") == false && 
        stristr($param, "totalRows_Recordset1") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_Recordset1 = "&" . implode("&", $newParams);
  }
}
$queryString_Recordset1 = sprintf("&totalRows_Recordset1=%d%s", $totalRows_Recordset1, $queryString_Recordset1);
 

airex

Utente Èlite
2,394
12
CPU
Intel Core2Duo E6750
Scheda Madre
Gigabyte GA-G33M-DS2R
HDD
1x80GB Sata2 + 1x320GB Sata2
RAM
2 x 2048MB DDR2 800MHz
GPU
NVidia 8800GT 1GB
Audio
Intel HDA
Monitor
LCD Samsung 19"
PSU
LC Power Green Power V2.0 - 550 Watt
OS
Linux Slackware64
se i parametri della query li cerchi nella variabile $_POST è ovvio che dopo aver seguito un link non li hai piu', questo perchè i link passano parametri che finiranno in $_GET (e cmq devi sempre indicarli tutti).

Come soluzione potresti:
- usare le sessioni
- prendere i dati arrivati in $_POST, serializzarli + codificarli in base64 e passarli esplicitamente alla pagina successiva inserendo tutto cio' nel link
- utilizzare un form nascosto che conterrà i dati da passare e usare i link "avanti" e "indietro" per compilare al volo l'action del form "fantasma" e, sempre in automatico, fare il submit dello stesso

Cmq ne avevamo parlato già un'altra volta, se cerchi trovi di sicuro qualcosa
 

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando

Discussioni Simili

Hot: Sei vaccinato? [sondaggio anonimo]

  • Primo ciclo vaccinale completo (1-2 dosi)

    Voti: 441 78.6%
  • Fatta 1a dose, in attesa della 2a

    Voti: 20 3.6%
  • Sono prenotato per la 1a dose

    Voti: 13 2.3%
  • Non so se vaccinarmi

    Voti: 16 2.9%
  • Non ho intenzione di vacciarmi

    Voti: 58 10.3%
  • Fatta anche la terza dose

    Voti: 13 2.3%