paginazione

SAC07PA

Nuovo Utente
29 Dic 2008
11
0
1
Buongiorno,
ho un problema nella paginazione di alcuni records.
Praticamente ho provato ad utilizzare vari script scaricati dalla rete, e in tutti ho avuto il solito problema. Gli script non mi danno alcun tipo di errore però quando devo girare pagina perdo tutti i dati. Penso che il problema derivi dalla clausola Where, in quanto se tolgo il filtro vengono estrapolati tutti i dati inseriti nella tabella e non ho alcun problema a navigare da pagina a pagina (sia in avanti che in dietro).
Sono 2 giorni che provo in tutti i modi a trovare l'errore però non ci sono riuscito, neanche leggendo i vari forum trovati sull'argomento.
Grazie per l'eventuale aiuto che qualcuno potrà gentilmente darmi.

//includiamo il file della classe
@require("paginazione.php");


// istanziamo la classe per l'impaginazione
$p = new Paging;

// numero massimo di risultati per pagina
$max = 3;

// identifichiamo la pagina da cui iniziare la numerazione
$inizio = $p->paginaIniziale($max);

// contiamo i records nel database
$query_count = @mysql_query("SELECT * FROM telefonate WHERE annu_tel<>'A' and id_clstu = '$str_id' and data_tel>='$str_data_inizio' and data_tel<= '$str_data_fine'") or die (mysql_error());
$count = @mysql_num_rows($query_count) or die (mysql_error());

// troviamo il numero delle pagine che dovrà essere contato
$pagine = $p->contaPagine($count, $max);

$link = @mysql_connect("$db_host","$db_username","$db_password")or die("errore connessione".mysql_error());
$dbw = mysql_select_db("ehsaab52_paolo") or die ("Impossibile connettersi al database $database");
$data_p = @mysql_query("SELECT * FROM telefonate WHERE annu_tel<>'A' and id_clstu = '$str_id' and data_tel>='$str_data_inizio' and data_tel<= '$str_data_fine' LIMIT ".$inizio.",".$max) or die (mysql_error());

while ($riga = mysql_fetch_array($data_p)){
$sid_sollecito=$riga['id_tel'];
$sid_clstu=$riga['id_clstu'];
$sdata_sollecito=date("d/m/Y H:i:s",$riga['data_tel']);
$sCognome=$riga['cognome_tel'];
$stipo_sollecito=$riga['tipo_tel'];
$sData_appuntamento=$riga['data_app'];
$sdipendente_sollecito=$riga['operatore_tel'];
$snumero_tel=$riga['numero_tel'];
$schiamante=$riga['chiamante'];
$snumero_chiamante=$riga['tel_chiamante'];
$snote_tel=addslashes($riga['note_tel']);

if ($sData_appuntamento<>0){
$sData_appuntamento=date("d/m/Y H:i:s",$sData_appuntamento);
$anno1= substr($sData_appuntamento,6,4);//recuperata l'anno
$mese1= substr($sData_appuntamento,3,2);//recupera il mese
$giorno1= substr($sData_appuntamento,0,2);//recupera il giorno
$ora1= substr($sData_appuntamento,10,3);//recupera il giorno
$minuti1= substr($sData_appuntamento,14,2);//recupera il giorno
$secondi1= substr($sData_appuntamento,16,2);
}

$anno= substr($sdata_sollecito,6,4);//recuperata l'anno
$mese= substr($sdata_sollecito,3,2);//recupera il mese
$giorno= substr($sdata_sollecito,0,2);//recupera il giorno
$ora= substr($sdata_sollecito,10,3);//recupera il giorno
$minuti= substr($sdata_sollecito,14,2);//recupera il giorno
$secondi= substr($sdata_sollecito,16,2);

echo "<b>data telefonata :</b>"; echo $giorno; echo "/"; echo $mese; echo "/"; echo $anno;
echo "&nbsp;&nbsp;&nbsp;<b>Chiamante :</b>"; echo $schiamante;
echo "&nbsp;&nbsp;&nbsp;<b>Telefono :</b>"; echo $snumero_chiamante;
echo "<br>";
echo "<b>testo telefonata :</b>"; echo $snote_tel;
echo "<br>";
echo "<br>";
}

//mostriamo le pagine
$lista = $p->listaPagine($_GET['p'], $pagine);
echo $lista . "<br>";

//mostriamo il navigatore Precedente/Successiva
$navigatore = $p->precedenteSuccessiva($_GET['p'], $pagine);
echo $navigatore;
?>
 

SAC07PA

Nuovo Utente
29 Dic 2008
11
0
1
rettifico quanto detto in precedenza in quanto l'errore riscontrato nel passare da una pagina perdendo tutti i dati è da riportare al fatto che acquisisco dei dati provenienti da altro programma con il metodo $_POST e quando vado a passare ad un'altra pagina questa ricaricandosi perde i valori indicati nel $_POST. Come posso ovviare a questo problema?
Grazie.
Riporto qui di seguito l'intero script.


PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <? require ("cambio_connessione_database.php");?>
 <? require ("cambio_sfondi_programma.php");?>
 <? include ("controllo_password_globale.php");?> 
<html>
    <head>
    <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
  <title>visualizza telefonate cliente</title>
  <link rel="stylesheet" type="text/css" href="submit.css">
<style type="text/css">
html, body{
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
} #sfondo{
position:absolute;
height:100%;
width: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<img id="sfondo" src="sfondo_a3.jpg" alt="">
<div style="text-align: center; width: 200px; height: 100px; position: absolute; left: 50px; top: 20px;"><span style="font-family: Arial; color: white;">Gestioni
amministrazioni<br>
servizio segreteria e amm.ni<br>
Release 2.0
</span>
</div>
<br>
<div style="text-align: center; width: 680px; height: 400px; position: absolute; left: 50%; top: 50%; margin-left: -340px; margin-top: -200px;"><span style="font-family: Arial; color: black;">
<h2>Visualizzazione telefonate e dati del chiamante</h2></span></div>
<div style="text-align: left; width: 680px; height: 400px; position: absolute; left: 50%; top: 50%; margin-left: -340px; margin-top: -130px;"><span style="font-family: Arial; color: black;">
<br>

<?php
$sData_inizio=trim(($_POST['anno']."-".$_POST['mese']."-".$_POST['giorno']));
$sData_fine=trim(($_POST['anno1']."-".$_POST['mese1']."-".$_POST['giorno1']));

//ROUTINE DEGLI ERRORI
 if (($sData_inizio=='--') and ($sData_fine!='--')) {
    echo "<a href='visualizza_tel_cliente.php' </a>DATA INIZIO CONTROLLO NON INSERITA";
    }
     if (($sData_inizio!='--') and ($sData_fine=='--')) {
    echo "<a href='visualizza_tel_cliente.php' </a>DATA FINE CONTROLLO NON INSERITA";
    exit;
   }
   if (($sData_inizio=='--') and ($sData_fine=='--')) {
    $sData_inizio=trim(date("Y-m-d"));
    $sData_fine=trim(date("Y-m-d"));
   }
// se non viene inserita alcuna data il software provvede a mettere la data odierna
  $sData_odierna=date("Y-m-d");

$str_data_inizio = strtotime($sData_inizio);
$str_data_fine = strtotime($sData_fine);
$str_data_odierna = strtotime($sData_odierna);
  
    if ($str_data_inizio>$str_data_fine) {
    echo "<a href='visualizza_tel_cliente.php' </a>DATA INIZIO CONTROLLO MAGGIORE DI DATA FINE CONTROLLO";
   }


$x_pag = 3;

// Recupero il numero di pagina corrente.
// Generalmente si utilizza una querystring
$pag = $_GET['pag'];

// Controllo se $pag è valorizzato...
// ...in caso contrario gli assegno valore 1
if (!$pag) $pag = 1; 


// Uso mysql_num_rows per contare le righe presenti
// all'interno della tabella agenda
$all_rows = mysql_num_rows(mysql_query("SELECT * FROM telefonate WHERE annu_tel<>'A' and id_clstu = '$str_id' and data_tel>='$str_data_inizio' and data_tel<= '$str_data_fine'")); 

// Tramite una semplice operazione matematica definisco
// il numero totale di pagine
$all_pages = ceil($all_rows / $x_pag);

// Calcolo da quale record iniziare
$first = ($pag - 1) * $x_pag;


//  $link = @mysql_connect("$db_host","$db_username","$db_password")or die("errore connessione".mysql_error());
//  $dbw = mysql_select_db("ehsaab52_paolo") or die ("Impossibile connettersi al database $database"); 
  $data_p = mysql_query("SELECT * FROM telefonate WHERE annu_tel<>'A' and id_clstu = '$str_id' and data_tel>='$str_data_inizio' and data_tel<= '$str_data_fine' LIMIT  $first, $x_pag"); 
  $nr = mysql_num_rows($data_p);
  
  if ($nr != 0){
  for($x = 0; $x < $nr; $x++){
  while ($riga = mysql_fetch_array($data_p)){
  $sid_sollecito=$riga['id_tel'];
  $sid_clstu=$riga['id_clstu'];
  $sdata_sollecito=date("d/m/Y H:i:s",$riga['data_tel']);
  $sCognome=$riga['cognome_tel'];
  $stipo_sollecito=$riga['tipo_tel'];
  $sData_appuntamento=$riga['data_app'];
  $sdipendente_sollecito=$riga['operatore_tel'];
  $snumero_tel=$riga['numero_tel'];
  $schiamante=$riga['chiamante'];
  $snumero_chiamante=$riga['tel_chiamante'];
  $snote_tel=addslashes($riga['note_tel']);

  if ($sData_appuntamento<>0){
  $sData_appuntamento=date("d/m/Y H:i:s",$sData_appuntamento);
  $anno1= substr($sData_appuntamento,6,4);//recuperata l'anno
  $mese1= substr($sData_appuntamento,3,2);//recupera il mese
  $giorno1= substr($sData_appuntamento,0,2);//recupera il giorno
  $ora1= substr($sData_appuntamento,10,3);//recupera il giorno
  $minuti1= substr($sData_appuntamento,14,2);//recupera il giorno
  $secondi1= substr($sData_appuntamento,16,2);
  }  
  
  $anno= substr($sdata_sollecito,6,4);//recuperata l'anno
  $mese= substr($sdata_sollecito,3,2);//recupera il mese
  $giorno= substr($sdata_sollecito,0,2);//recupera il giorno
  $ora= substr($sdata_sollecito,10,3);//recupera il giorno
  $minuti= substr($sdata_sollecito,14,2);//recupera il giorno
  $secondi= substr($sdata_sollecito,16,2); 

  echo "<b>data telefonata   :</b>"; echo $giorno; echo "/"; echo $mese; echo "/"; echo $anno;
  echo "&nbsp;&nbsp;&nbsp;<b>Chiamante   :</b>"; echo $schiamante;
  echo "&nbsp;&nbsp;&nbsp;<b>Telefono   :</b>"; echo $snumero_chiamante;
  echo "<br>";
  echo "<b>testo telefonata :</b>"; echo $snote_tel;
  echo "<br>";
  echo "<br>";
  }
  }
}else{
  echo "Nessun record trovato!";
}
echo "Pagina: "; 
for ($ind = 1; $ind <= $all_pages; $ind++) { 
if(($ind==$all_pages)==FALSE){ 
echo "<a href='visualizza_tel_cliente2.php?pag=$ind'>".$ind."</a>-"; 
}else{ 
echo "<a href='visualizza_tel_cliente2.php?pag=$all_pages'>".$all_pages."</a>"; 
} 
} 
?>

</div>
</body>
</html>
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto due cose:
vedo che ci sono due post uguali: uno lo tolgo.
racchiudi sempre lo script tra gli appositi tag (seconda riga formattazione del post, ultime tre iconcine nell'ordine CODE, HTML, PHP).

poi potresti usare le sessioni per "ricordare" i valori dei post.
 
Discussioni simili
Autore Titolo Forum Risposte Data
I Errore 80040220 nella newsletter con paginazione Classic ASP 0
motleyrulez Paginazione Tabella Bootstrap Javascript 2
B [Java] Paginazione in risposta HTTP Java 0
L [PHP] paginazione con classi vendor PHP 2
K [PHP] Paginazione Wordpress: passare variabile PHP 6
A [PHP] If e Else paginazione ok ci sono risultati no ma avanti lo stesso PHP 15
paloppa [PHP] paginazione con ajax PHP 1
O paginazione php mysql PHP 10
A [PHP] limitare counter paginazione PHP 7
V [ASP] paginazione-risultati-query-grandi-dimensioni Classic ASP 8
A [PHP] Problema paginazione motore di ricerca PHP 48
A [PHP] inserire paginazione su script php/mysql PHP 6
Marcello.Fiore Paginazione jQuery - PHP jQuery 2
elpirata [PHP] Paginazione dati estratti da una query con più condizioni PHP 17
X come modificare paginazione del tutorial PHP 0
MarcoGrazia Problema con bootstrap, saltata tutta la paginazione in IE8 HTML e CSS 1
F paginazione record di una query Classic ASP 5
Luca13 ASP Easy-News paginazione Classic ASP 2
G Problema di Indice e Paginazione PHP 5
L articolo: Paginazione dei dati presenti in un file di testo - informazioni PHP 2
M Paginazione di risultati query mysql PHP 2
D Paginazione dati PDO PHP 8
zorro Help paginazione PHP 10
M Problema su numerazione paginazione php PHP 6
D [risolto] Problemi di paginazione dei risultati con una determinata query Classic ASP 4
L paginazione testo senza troncare le parole PHP 3
L testare una paginazione "Creazione di 1000 dati random in una tabella" PHP 7
L problema paginazione con valori -1 -2 -3 -4 PHP 0
N Paginazione con invio modulo PHP 0
L Paginazione file di testo PHP 3
N Script paginazione PHP 0
N Paginazione PHP 2
felino Pagina di ricerca: la paginazione non funziona WordPress 0
xone Evitare Meta Tag duplicati su paginazione php PHP 2
filippino Paginazione file txt con PHP? PHP 1
felino PHP e Paginazione Jquey PHP 2
H [RISOLTO] paginazione PHP + mysql PHP 15
M Problema Paginazione con Mod_rewrite .htaccess PHP 0
J Paginazione PHP in jQuery UI Tabs jQuery 13
ste80 interazione PHP Access con paginazione PHP 7
W Problema eliminazione ultimo record da ultima pagina di crud con paginazione PHP 2
L Paginazione con pdo. PHP 8
G Paginazione php utilizzando le api di careerjet PHP 0
G Paginazione php utilizzando le api di careerjet WordPress 1
L Paginazione file evitare di inserire questi \ o altro nella get PHP 1
K problemi con paginazione tabella PHP 7
L Creare paginazione numerica PHP 3
L Problema paginazione che ripete i dati doppi PHP 1
L Paginazione elenco File da una cartella PHP 11
L probelma paginazione dati PHP 3

Discussioni simili