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

Pubblicità

isidoro80

Utente Attivo
Messaggi
124
Reazioni
0
Punteggio
38
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);
 
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
 
Pubblicità
Pubblicità
Indietro
Top