8768 sujets

Développement web côté serveur, CMS

Bonjour,

je souhaite faire tourner des pages générées dynamiquement à partir d'un tableau csv assez grand. je l'ai donc scindé en plusieurs tableau sur plusieurs pages.

Je fais tourner donc un
<META HTTP-EQUIV="Refresh" Content="2; URL=index.php?page='.($page_demandee+1).'">


Ça marche bien, sauf qu'arrivée à la dernière page bien spécifiée à la fin du fichier par $der_page impossible de retourner à la page initiale avec mon if.

if($page_demandee<$der_page){ 
                
               echo '<META HTTP-EQUIV="Refresh" Content="2; URL=index.php">';
                
            } else {
            
                echo '<META HTTP-EQUIV="Refresh" Content="2; URL=index.php?page='.($page_demandee+1).'">'; 
            }


Comment récupérer $der_page avant ma boucle ?

Code complet simplifié :
<?php 

$delimiteur=';'; //en CSV, pour les séparateurs

$compteur_lignes=1; //initialisation du compteur de lignes
$compteur_pages=1; //initialisation du compteur de pages
$nb_lignes_par_page=15; //après tout, tu auras peut-être envie de configurer ça facilement...
 
if (isset($_GET['page'])) { //on a cliqué sur changer de page
  $page_demandee = (int)$_GET['page'];
} 
else{ //on arrive
  $page_demandee=1;
}    
?>

<!DOCTYPE html>
    <html>
        <head>
            <title>Euclide TV</title>
            <meta charset="utf-8" />
            <meta http-equiv="pragma" content="no-cache">
            <link rel="stylesheet" href="style.css" />
       <?php if($page_demandee<$der_page){ //si on affiche dernière page, il ne faut pas de lien page suivante
                
                echo '<META HTTP-EQUIV="Refresh" Content="2; URL=test.php">';
                
            } else {
            
                echo '<META HTTP-EQUIV="Refresh" Content="2; URL=test.php?page='.($page_demandee+1).'">'; 
            } ?>
        </head>
        
<body >
<?php 
 
if (($handle = fopen('Export.csv', 'r')) !== FALSE) { // je récupère données d'un CSV
  while (($data = fgetcsv($handle, 1000, $delimiteur)) !== FALSE) { // je récupère 1000 lignes du CSV
      $row++;
      
     if( $compteur_lignes>1 && ($compteur_lignes % $nb_lignes_par_page==1) ){ //modulo repère les changements de page
       $compteur_pages++; 
    }  
    
       if ($row == 1) { // je n'affiche pas la première ligne du tableau
            continue;
        }  
      
    if($compteur_pages==$page_demandee){ // j'affiche les données de la page

      for ($c=4; $c <= 7; $c++) {
        echo '<p>'.$data[$c].'</p>';
      }


    }
    $compteur_lignes++;
  }
  fclose($handle);
}


$der_page=$compteur_pages; //en sortie de boucle, la dernière page est la dernière valeur de compteur_pages


?>



</body>
</html>


Oui j'utilise un Meta car c'est pour un serveur privé... Merci pour votre aide Smiley smile
Salut

Stock tes variable en session, tu y arriveras mieux Smiley smile
Modifié par JENCAL (29 Nov 2019 - 10:40)
C'est à dire ? Là je tente de mettre du js...

if($page_demandee<$der_page){ 

     print("<script type=\"text/javascript\">setTimeout('location=(\"index.php\")' ,50);</script>"); 
                   
  } else {

    print("<script type=\"text/javascript\">setTimeout('location=(\"index.php?page='$page_demandee+1'\")' ,50);</script>"); 
          
} 


et c'est la cata ! Smiley confus Smiley sweatdrop