Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    181

    suddividere i record di una query in più pagine

    il seguente script serve per visualizzare in una pagina al massimo 25 record dopo una query e cnsente tramite dei collegamenti di passare ai successivi 25 record oppure i precedenti 25 record.
    es. se faccio una query e questa mi da 3000 risultati nella pagina ne visualizzo al massimo 25 ma attraverso dei link posso scorrere e visualizzare gli altri risultati sempre 25 per volta ovviamente.
    Ha sempre funzionato ed ora non funziona più non capisco perchè forse qualche aggiornamento nel linguaggio php? vi posto i pezzi di codice salienti. spero di essere stato chiaro


    codice:
    $currentPage = $_SERVER['PHP_SELF'];
    $maxRows_Recordset1 = 25;
    $pageNum_Recordset1 = 0;
    if (isset($_SERVER['pageNum_Recordset1'])) {
      $pageNum_Recordset1 = $_SERVER['pageNum_Recordset1'];
    }
    $startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;
    
    //poi c'è la query
    mysql_select_db($database_diserbo, $diserbo);
    $query_Recordset1 = sprintf("SELECT DISTINCT tesi.id_tesi, colture.coltura, pa.pa, formulato, epoche.epoche, pa_tesi.dose, fito_s.Fito_ewrs, eff_s.eff_ewrs FROM anni, colture, tesi, fito_s, eff_s, epoche, pa_tesi, pa, efficacia, fito, infestanti WHERE anni.id_anno = tesi.rif_anno AND colture.id_coltura = tesi.rif_coltura AND tesi.rif_fito_s = fito_s.id_fito_s AND epoche.id_epoche = pa_tesi.rif_epoca AND pa_tesi.rif_tesi = tesi.id_tesi AND infestanti.id_infestanti = efficacia.rif_infestante AND pa_tesi.rif_pa = pa.id_pa AND eff_s.id_eff_s = tesi.rif_eff_s AND efficacia.rif_eff = tesi.id_tesi AND fito.rif_fito = tesi.id_tesi AND colture.id_coltura LIKE '%s' AND pa.id_pa LIKE '%s' AND infestanti.id_infestanti LIKE '%s' AND epoche.id_epoche LIKE '%s'  ORDER BY tesi.id_tesi", $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);
    
    //conto le pagine
    if (isset($_SERVER['totalRows_Recordset1'])) {
      $totalRows_Recordset1 = $_SERVER['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($_SERVER['QUERY_STRING'])) {
      $params = explode("&", $_SERVER['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);
    $record = "SELECT COUNT(DISTINCT tesi.id_tesi) FROM anni, colture, tesi, fito_s, eff_s, epoche, pa_tesi, pa, efficacia, fito, infestanti WHERE anni.id_anno = tesi.rif_anno AND colture.id_coltura = tesi.rif_coltura AND tesi.rif_fito_s = fito_s.id_fito_s AND epoche.id_epoche = pa_tesi.rif_epoca AND pa_tesi.rif_tesi = tesi.id_tesi AND infestanti.id_infestanti = efficacia.rif_infestante AND pa_tesi.rif_pa = pa.id_pa AND eff_s.id_eff_s = tesi.rif_eff_s AND efficacia.rif_eff = tesi.id_tesi AND fito.rif_fito = tesi.id_tesi AND colture.id_coltura LIKE '$varcoltura_Recordset1' AND pa.id_pa LIKE '$varpa_Recordset1' AND infestanti.id_infestanti LIKE '$varinfestante_Recordset1' AND epoche.id_epoche LIKE '$varepoca_Recordset1'";
    $query_record = mysql_query($record, $diserbo) or die(mysql_error());
    $row_query_record = mysql_result($query_record,0,0);
    
    
    //link per scorrere tra le pagine che contengono i risultati della query
    
    <td width="70" height="19" valign="top"> <div align="center">">Primo</div></td>
                <td width="70" valign="top"> <div align="center">">Indietro</div></td>
                <td width="468" valign="top"> <div align="center">n° tesi trovate: 
                    <?php echo $row_query_record?> </div></td>
                <td width="65" valign="top"> <div align="center">">Avanti</div></td>
                <td width="73" valign="top"> <div align="center">">Ultimo</div></td>

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    27
    prima di disperarti usa
    codice:
    var_dump();
    ed
    codice:
    echo
    sulle variabili e stampa le query una volta stampate provale direttamente su mysql , troverai velocemente l'errore e non te lo scorderai piu

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.