" Passer variable php dans une URL d'une page à une autre"

Résolu/Fermé
modemo2018 Messages postés 231 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022 - 8 sept. 2022 à 21:02
modemo2018 Messages postés 231 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022 - 10 oct. 2022 à 17:23

Bonjour depuis quelques jours je rencontre un problème qui m'est insolite, j'ai l'habitude de faire passer des variable dynamiquement d'une page à une autre.

Là j'ai une 1ère page qui m'affiche un tableau des élèves

Voici le code:

<thead>
  <tr>
    <th>#</th>
    <th>Nom</th>
    <th>Prénom</th>
	  <th>Paiement</th>
  </tr>
 </thead> 		 

	
<?php  
	
$focus = !empty ( $_GET['focus'] ) ? $_GET['focus'] : NULL;
$i=1;	  

try{		
 $req2 = $bdd->prepare('SELECT * FROM eleve WHERE  class=? AND serie=? AND cycle=? AND annee=?');
$req2->execute(array($class,$serie,$cycle,$annee));			 
}
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());

    }
	
	
	
	while($don =  $req2->fetch()){	
		
echo '<tr>';
		
echo '<td>';echo $i;  echo'</td>';		
echo '<td><strong>';echo ''.$don['nom'].'';  echo'</strong></td>';
echo'<td>'; echo ''.$don['prenom'].''; echo'</td>';
		
	try{		
 $req1 = $bdd->prepare('SELECT * FROM frais WHERE ideleve=? AND mois=?');
$req1->execute(array($don['ideleve'],$mois));			 
}
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());

    }
			
	$don1 =  $req1->fetch();	
		
echo'<td>'; if ($don1['statut']!= '') {
		
		
		if ($don1['statut']== 'Effectué') {
echo '<em class="fa fa-circle-o text-success  mr-2"></em>'; echo 'Effectué'; 
		
} else {
			
 echo'<a href="sg-frais.php?';  echo'class= '; echo''.$don['class'].''; echo '&amp;serie= ';echo''.$don['serie'].''; echo '&amp;cycle= ';echo''.$don['cycle'].''; echo '&amp;ideleve= ';echo''.$don['ideleve'].'';  echo '&amp;mois=';echo''.$mois.''; echo '&amp;nom= ';echo''.$don['nom'].''; echo '&amp;prenom= ';echo''.$don['prenom'].''; echo '">';  
		
echo ''.$don1['statut'].''; echo'</a>'; 
		
} 

} else {   

echo'<a href="sg-frais.php?';  echo'class= '; echo''.$don['class'].''; echo '&amp;serie= ';echo''.$don['serie'].''; echo '&amp;cycle= ';echo''.$don['cycle'].''; echo '&amp;ideleve= ';echo''.$don1['ideleve'].'';  echo '&amp;mois=';echo''.$mois.''; echo '&amp;ideleve=';echo''.$don['ideleve'].''; echo '&amp;nom= ';echo''.$don['nom'].''; echo '&amp;prenom= ';echo''.$don['prenom'].''; echo '">';  
		
echo 'Cliquez-ici'; echo'</a>'; 

} 



$i= $i+1;
		
echo'</td>';		

}
		
				
?>  




				 

          
        </table> 

Mon code affiche le tableau sont difficultés, mon problème s'est au niveau de la transmission des valeurs par URL au niveau de la touche " Details sur le paiement", voici le code à ce niveau:

<div class="p-4 mb-3 bg-white">
              <h3 class="h5 text-black mb-3">Gestion Elèves</h3>
             <?php echo'<a href="tab-frais1.php?'; echo'focus='; echo''.$focus.''; echo'&amp;class= ';echo''.$class.''; echo '&amp;serie=';echo''.$serie.''; echo'&amp;cycle=';echo''.$cycle.'';echo'&amp;mois=';echo''.$mois.''; echo'&amp;focus=';echo''.$focus.'';echo'"';echo 'class="btn btn-primary  py-2 px-4"'; echo'>'; ?><strong>Détails sur le paiement</strong></a>	

            </div>

Lorsque j'envoie les valeurs sur l'autre page pour qu'il exécute le même code que dans la page précédente, mais cette fois-ci affiche d'autre informations venant du même table de la BD, voici le resultat

Comme vous pouvez le remarquer:

1- le tableau n'affiche pas le contenu du tableau pourtant c'est le même code que la page précédente

2 - Il affiche les variables " CP1 - PRIMAIRE - 1" qui ont été transmis par URL 

3 - Mais curieusement ces variables ne s'exécutent  au niveau de la rêquete Mysql.

4- Lorsque je fais clique sur " Retour", avec les même valeurs en URL:

 <div class="p-4 mb-3 bg-white">
              <h3 class="h5 text-black mb-3">Gestion Elèves</h3>
             <?php echo'<a href="tab-frais.php?'; echo 'focus='; echo''.$focus.''; echo'&amp;class= '; echo''.$class.''; echo '&amp;serie= ';echo''.$serie.''; echo '&amp;cycle= ';echo''.$cycle.''; echo '&amp;mois= ';echo''.$mois.''; echo '&amp;focus= ';echo''.$focus.''; echo '"';  echo 'class="btn btn-primary  py-2 px-4"'; echo'>'; ?><strong>Retour</strong></a>	

            </div>

5 - le retour vers la page précédente avec les mêmes valeurs, les valeurs ne sont pas prisent en compte.

Quelqu'un peut-il m'aider à comprendre pourquoi ces valeurs bien que transmise sur l'autre page, et s'affiche mais ne s'éxecutent pas au niveau de la requête

A voir également:

4 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
8 sept. 2022 à 21:43

Bonjour,

Commence par éviter d'ouvrir/fermer les balises PHP .. une seule suffit pour l'écriture de ton lien :

 echo'<a href="tab-frais1.php?focus='
     . $focus.'&class='
     . $class.'&serie='
     . $serie.'&cycle='
     . $cycle.'&mois='
     . $mois .'&focus='
     . $focus.'" 
      class="btn btn-primary  py-2 px-4" >'
     .'<strong>Détails sur le paiement</strong>
     </a>	';

Ensuite, lorsque tu cliques sur ton lien, vérifies qu'il correspond bien à ce que tu attends...

Si oui,  pour ton problème d'affichage des données.. il faudra regarder le code correspondant...


0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
8 sept. 2022 à 21:44

Pour l'affichage, ton premier code contient lui aussi des manques..

<thead>
  <tr>
    <th>#</th>
    <th>Nom</th>
    <th>Prénom</th>
	  <th>Paiement</th>
  </tr>
 </thead> 		 

	
<?php  
	
$focus = !empty ( $_GET['focus'] ) ? $_GET['focus'] : NULL;
$i=1;	  

try{		
 $req2 = $bdd->prepare('SELECT * FROM eleve WHERE  class=? AND serie=? AND cycle=? AND annee=?');
$req2->execute(array($class,$serie,$cycle,$annee));			 
}
    catch(Exception $e)

D'où viennent les variables $class,$serie,$cycle,$annee ?   il semble que tu aies oublié de les récupérer ( comme tu l'as fait pour le focus.. )

0
modemo2018 Messages postés 231 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
9 sept. 2022 à 09:07

Si si Je récupère les  $class,$serie,$cycle comme $focus mais un peu plus haut, voici le code correspondant

$class = !empty ( $_GET['class'] ) ? $_GET['class'] : NULL;
$cycle = !empty ( $_GET['cycle'] ) ? $_GET['cycle'] : NULL;	 
$serie = !empty ( $_GET['serie'] ) ? $_GET['serie'] : NULL;

$annee = utf8_encode(strftime('%Y'));

Quels sont les manques qu'à mon code svp? s'il yavait de manque il allait me signalé des erreurs.

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > modemo2018 Messages postés 231 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022
9 sept. 2022 à 10:34

il serait bien de nous montrer l'intégralité du fichier et pas juste un extrait... histoire que l'on puisse voir comment le code est organisé et si il n'y aurait pas des trucs au milieu qui posent problème.

En plus, il me semblait déjà t'avoir conseillé de placer ton code php au maximum en dehors du html ....

Si tu montres ton code complet, on pourra t'aider à le réorganiser.

Pense aussi à nous copier/coller l'url qui apparait dans ton navigateur après que tu aies cliqué sur ton lien....

0
modemo2018 Messages postés 231 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022
9 sept. 2022 à 09:19

avant  de cliquer sur le lien, je vérifie bel et bien les informations, puis que j'arrive à afficher ces infos(passer par URL) dans l'autre page,

le problème c'est que pourquoi ces variables $class,$serie,$cycle dans la même requête sauf cette la requête s'éxecute dans l'autre page n'affiche pas le contenu de ma page.

Je signale qu'en fait c'est la même page(même contenu) que j'ai gardé à la différence dans l'autre page j'ai changé juste des données à afficher. 

Voici le code:

<thead>
  <tr>
    <th>#</th>
    <th>Nom</th>
    <th>Prénom</th>
	  <th>Montant</th>
	  <th>Statut</th>
  </tr>
 </thead> 		 

	
<?php  
	
$focus = !empty ( $_GET['focus'] ) ? $_GET['focus'] : NULL;
$class = !empty ( $_GET['class'] ) ? $_GET['class'] : NULL;
$cycle = !empty ( $_GET['cycle'] ) ? $_GET['cycle'] : NULL;	 
$serie = !empty ( $_GET['serie'] ) ? $_GET['serie'] : NULL;
	  
$mois = !empty ( $_GET['mois'] ) ? $_GET['mois'] : NULL;

echo $class;echo $cycle;echo $serie;       



$i=1;	  

try{		
 $req2 = $bdd->prepare('SELECT * FROM eleve WHERE  class=? AND serie=? AND cycle=? AND annee=?');
$req2->execute(array($class,$serie,$cycle,$annee));		 
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
	
while($don =  $req2->fetch()){	
		
echo '<tr>';
		
echo '<td>';echo $i;  echo'</td>';		
echo '<td><strong>';echo ''.$don['nom'].'';  echo'</strong></td>';
echo'<td>'; echo ''.$don['prenom'].''; echo'</td>';
		
	try{		
 $req1 = $bdd->prepare('SELECT * FROM frais WHERE ideleve=? AND mois=?');
$req1->execute(array($don['ideleve'],$mois));			 
}
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());

    }
			
	$don1 =  $req1->fetch();	
		
echo'<td>'; if ($don1['statut']!='') {
		
	echo ''.$don1['montant'].'';
		
} else {

echo 'Non Effectué'; 
		
} 

  
	
try{		
 $req2 = $bdd->prepare('SELECT * FROM frais WHERE ideleve=? AND mois=?');
$req1->execute(array($don['ideleve'],$mois));			 
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());

}
			
$don2 =  $req2->fetch();		
		
echo'</td>'; echo ''.$don2['statut'].''; echo'</td>';

$i= $i+1;		
echo'</td>';
} 	
				
?>  

</table>   
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > modemo2018 Messages postés 231 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022
9 sept. 2022 à 10:26

Pourrais-tu nous montrer le lien que ça t'a généré parce que tu cliques dessus

0
modemo2018 Messages postés 231 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022
9 sept. 2022 à 11:37

Voici le code de la 1ère page,: 

<?php
session_start();  include("connexion.php");?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>F.scolaire &mdash; Classe</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Nunito+Sans%3A200%2C300%2C400%2C700%2C900%7CRoboto+Mono%3A300%2C400%2C500"> 
    <link rel="stylesheet" href="fonts/icomoon/style.css">

    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/magnific-popup.css">
    <link rel="stylesheet" href="css/jquery-ui.css">
    <link rel="stylesheet" href="css/owl.carousel.min.css">
    <link rel="stylesheet" href="css/owl.theme.default.min.css">
    <link rel="stylesheet" href="css/bootstrap-datepicker.css">
    <link rel="stylesheet" href="css/animate.css">
    
    
    <link rel="stylesheet" href="fonts/flaticon/font/flaticon.css">
    <link rel="stylesheet" href="css/fl-bigmug-line.css">
  
    <link rel="stylesheet" href="css/aos.css">

    <link rel="stylesheet" href="css/style.css">
	  
	  <link rel="stylesheet" href="css/Stile3.css">
    
  </head>
  <body>
  
  <div class="site-wrap">

    <div class="site-mobile-menu">
      <div class="site-mobile-menu-header">
        <div class="site-mobile-menu-close mt-3">
          <span class="icon-close2 js-menu-toggle"></span>
        </div>
      </div>
      <div class="site-mobile-menu-body"></div>
    </div> <!-- .site-mobile-menu -->
    
    
    <header class="site-navbar py-1" role="banner">

      <div class="container">
        <div class="row align-items-center">
          
          <div class="col-6 col-xl-2">
            <h1 class="mb-0"><a href="index.html" class="text-black h2 mb-0">CS<strong>Bilingue</strong></a></h1>
          </div>

          <div class="col-10 col-xl-10 d-none d-xl-block">
           <nav class="site-navigation text-right" role="navigation">

              <ul class="site-menu js-clone-nav mr-auto d-none d-lg-block">
                <li class="active"><a href="index.html">Acceuil</a></li>
                <li class="has-children">
                  <a href="category.html">Espace</a>
                  <ul class="dropdown">
                    <li><a href="panel-enseignant.html">Enseignant</a></li>
                    <li><a href="panel-enseignant.html">Gestionnaire</a></li>
                   
                  </ul>
                </li>
                <li><a href="about.html">A propos</a></li>
                <li><a href="contact.html">Contact</a></li>
                <li><a href="panel-enseignant.html"><span class="rounded bg-primary py-2 px-3 text-white"><span class="h5 mr-2"></span> Se connecter</span></a></li>
              </ul>
            </nav>
          </div>

          <div class="col-6 col-xl-2 text-right d-block">
            
            <div class="d-inline-block d-xl-none ml-md-0 mr-auto py-3" style="position: relative; top: 3px;"><a href="#" class="site-menu-toggle js-menu-toggle text-black"><span class="icon-menu h3"></span></a></div>

          </div>

        </div>
      </div>
      
    </header>

    <div class="unit-5 overlay" style="background-image: url('images/hero_bg_2.jpg');">
      <div class="container text-center">
        <h2 class="mb-0">Frais scolaire</h2>
      
      </div>
    </div>
 
    <div class="site-section bg-light">
      <div class="container">
        <div class="row">
			<div class="col-md-7 text-center">
            <h2 class="font-weight-bold text-black" data-aos="fade">Liste des élèves</h2>
            <p>
	<?php  
$class = !empty ( $_GET['class'] ) ? $_GET['class'] : NULL;
$cycle = !empty ( $_GET['cycle'] ) ? $_GET['cycle'] : NULL;	 
$serie = !empty ( $_GET['serie'] ) ? $_GET['serie'] : NULL;
	  
$mois = !empty ( $_GET['mois'] ) ? $_GET['mois'] : NULL;
$focus = !empty ( $_GET['focus'] ) ? $_GET['focus'] : NULL;
	  
	     setlocale(LC_TIME, 'fr_FR');
date_default_timezone_set('Europe/Paris');
$date = utf8_encode(strftime('%d %B'));	
	
	if($date =='01 octobre') {
	
$annee = utf8_encode(strftime('%Y')) +1; 
 }else { $annee = utf8_encode(strftime('%Y'));  }

$req =$bdd->prepare('SELECT count(ideleve) FROM eleve WHERE  class=? AND serie=? AND cycle=? AND annee=?');
$req->execute(array($class,$serie,$cycle,$annee));
$result = $req->fetchColumn();
$id1 = $result;

$statut='Non Effectué';
$req =$bdd->prepare('SELECT count(ideleve) FROM frais WHERE  statut=? AND mois=? AND annee=?');
$req->execute(array($statut,$mois,$annee));
$result1 = $req->fetchColumn();
$id2 = $result1;				
				
$statut='Effectué';
$req =$bdd->prepare('SELECT count(ideleve) FROM frais WHERE  statut=?AND mois=? AND annee=? ');
$req->execute(array($statut,$mois,$annee));
$result2 = $req->fetchColumn();
$id3 = $result2;	
				
$statut='Avance';
$req =$bdd->prepare('SELECT count(ideleve) FROM frais WHERE  statut=? AND mois=? AND annee=?');
$req->execute(array($statut,$mois,$annee));
$result4 = $req->fetchColumn();
$id4 = $result4;					
    

	echo'Inscrits:'; echo $id1; echo '-'; echo'Effectué:'; echo $id3; echo'- Non effectué:';echo $id2;   echo'- Ayant Avancé:';echo $id4;    
	  
	  
	  ?> 			
		</p>
          </div>
       
          <div class="col-md-12 col-lg-8 mb-5">
         <table id="fantasyTable" class="display responsive no-wrap order-column" width="100%" >
<thead>
  <tr>
    <th>#</th>
    <th>Nom</th>
    <th>Prénom</th>
	  <th>Paiement</th>
  </tr>
 </thead> 		 

	
<?php  
	
$focus = !empty ( $_GET['focus'] ) ? $_GET['focus'] : NULL;
$i=1;	  

try{		
 $req2 = $bdd->prepare('SELECT * FROM eleve WHERE  class=? AND serie=? AND cycle=? AND annee=?');
$req2->execute(array($class,$serie,$cycle,$annee));			 
}
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());

    }
	
	
	
	while($don =  $req2->fetch()){	
		
echo '<tr>';
		
echo '<td>';echo $i;  echo'</td>';		
echo '<td><strong>';echo ''.$don['nom'].'';  echo'</strong></td>';
echo'<td>'; echo ''.$don['prenom'].''; echo'</td>';
		
	try{		
 $req1 = $bdd->prepare('SELECT * FROM frais WHERE ideleve=? AND mois=?');
$req1->execute(array($don['ideleve'],$mois));			 
}
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());

    }
			
	$don1 =  $req1->fetch();	
		
echo'<td>'; if ($don1['statut']!= '') {
		
		
		if ($don1['statut']== 'Effectué') {
echo '<em class="fa fa-circle-o text-success  mr-2"></em>'; echo 'Effectué'; 
		
} else {
			
 echo'<a href="sg-frais.php?';  echo'class= '; echo''.$don['class'].''; echo '&amp;serie= ';echo''.$don['serie'].''; echo '&amp;cycle= ';echo''.$don['cycle'].''; echo '&amp;ideleve= ';echo''.$don['ideleve'].'';  echo '&amp;mois=';echo''.$mois.''; echo '&amp;nom= ';echo''.$don['nom'].''; echo '&amp;prenom= ';echo''.$don['prenom'].''; echo '">';  
		
echo ''.$don1['statut'].''; echo'</a>'; 
		
} 

} else {   

echo'<a href="sg-frais.php?';  echo'class= '; echo''.$don['class'].''; echo '&amp;serie= ';echo''.$don['serie'].''; echo '&amp;cycle= ';echo''.$don['cycle'].''; echo '&amp;ideleve= ';echo''.$don1['ideleve'].'';  echo '&amp;mois=';echo''.$mois.''; echo '&amp;ideleve=';echo''.$don['ideleve'].''; echo '&amp;nom= ';echo''.$don['nom'].''; echo '&amp;prenom= ';echo''.$don['prenom'].''; echo '">';  
		
echo 'Cliquez-ici'; echo'</a>'; 

} 



$i= $i+1;
		
echo'</td>';		

}
		
				
?>  
 </table>   
           

          
			  
          </div>

          <div class="col-lg-4">
            <div class="p-4 mb-3 bg-white">
              <h3 class="h5 text-black mb-3">Gestion Elèves</h3>
             <?php echo'<a href="tab-frais1.php?'; echo'focus='; echo''.$focus.''; echo'&amp;class= ';echo''.$class.''; echo '&amp;serie=';echo''.$serie.''; echo'&amp;cycle=';echo''.$cycle.'';echo'&amp;mois=';echo''.$mois.''; echo'&amp;focus=';echo''.$focus.'';echo'"';echo 'class="btn btn-primary  py-2 px-4"'; echo'>'; ?><strong>Détails sur le paiement</strong></a>	

            </div>
            
            <div class="p-4 mb-3 bg-white">
             
            </div>
          </div>
        </div>
      </div>
    </div>

   





  </div>

  <script src="js/jquery-3.3.1.min.js"></script>
  <script src="js/jquery-migrate-3.0.1.min.js"></script>
  <script src="js/jquery-ui.js"></script>
  <script src="js/popper.min.js"></script>
  <script src="js/bootstrap.min.js"></script>
  <script src="js/owl.carousel.min.js"></script>
  <script src="js/jquery.stellar.min.js"></script>
  <script src="js/jquery.countdown.min.js"></script>
  <script src="js/jquery.magnific-popup.min.js"></script>
  <script src="js/bootstrap-datepicker.min.js"></script>
  <script src="js/aos.js"></script>
  

  <script src="js/main.js"></script>
    
  </body>
</html>

Voici le code de la 2ème page où est envoyé les variable, le but c'est que ces variables affiche le contenu du tableau dans le deux sens.

<?php session_start();?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>F.scolaire &mdash; Classe</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Nunito+Sans%3A200%2C300%2C400%2C700%2C900%7CRoboto+Mono%3A300%2C400%2C500"> 
    <link rel="stylesheet" href="fonts/icomoon/style.css">

    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/magnific-popup.css">
    <link rel="stylesheet" href="css/jquery-ui.css">
    <link rel="stylesheet" href="css/owl.carousel.min.css">
    <link rel="stylesheet" href="css/owl.theme.default.min.css">
    <link rel="stylesheet" href="css/bootstrap-datepicker.css">
    <link rel="stylesheet" href="css/animate.css">
    
    
    <link rel="stylesheet" href="fonts/flaticon/font/flaticon.css">
    <link rel="stylesheet" href="css/fl-bigmug-line.css">
  
    <link rel="stylesheet" href="css/aos.css">

    <link rel="stylesheet" href="css/style.css">
	  
	  <link rel="stylesheet" href="css/Stile3.css">
    
  </head>
  <body>
  
  <div class="site-wrap">

    <div class="site-mobile-menu">
      <div class="site-mobile-menu-header">
        <div class="site-mobile-menu-close mt-3">
          <span class="icon-close2 js-menu-toggle"></span>
        </div>
      </div>
      <div class="site-mobile-menu-body"></div>
    </div> <!-- .site-mobile-menu -->
    
    
    <header class="site-navbar py-1" role="banner">

      <div class="container">
        <div class="row align-items-center">
          
          <div class="col-6 col-xl-2">
            <h1 class="mb-0"><a href="index.html" class="text-black h2 mb-0">CS<strong>Bilingue</strong></a></h1>
          </div>

          <div class="col-10 col-xl-10 d-none d-xl-block">
           <nav class="site-navigation text-right" role="navigation">

              <ul class="site-menu js-clone-nav mr-auto d-none d-lg-block">
                <li class="active"><a href="index.html">Acceuil</a></li>
                <li class="has-children">
                  <a href="category.html">Espace</a>
                  <ul class="dropdown">
                    <li><a href="panel-enseignant.html">Enseignant</a></li>
                    <li><a href="panel-enseignant.html">Gestionnaire</a></li>
                   
                  </ul>
                </li>
                <li><a href="about.html">A propos</a></li>
                <li><a href="contact.html">Contact</a></li>
                <li><a href="panel-enseignant.html"><span class="rounded bg-primary py-2 px-3 text-white"><span class="h5 mr-2"></span> Se connecter</span></a></li>
              </ul>
            </nav>
          </div>

          <div class="col-6 col-xl-2 text-right d-block">
            
            <div class="d-inline-block d-xl-none ml-md-0 mr-auto py-3" style="position: relative; top: 3px;"><a href="#" class="site-menu-toggle js-menu-toggle text-black"><span class="icon-menu h3"></span></a></div>

          </div>

        </div>
      </div>
      
    </header>

    <div class="unit-5 overlay" style="background-image: url('images/hero_bg_2.jpg');">
      <div class="container text-center">
        <h2 class="mb-0">Frais scolaire</h2>
      
      </div>
    </div>
 
    <div class="site-section bg-light">
      <div class="container">
        <div class="row">
			<div class="col-md-7 text-center">
            <h2 class="font-weight-bold text-black" data-aos="fade">Liste des élèves</h2>
            <p>
	<?php 
include("connexion.php");						
				
$class = !empty ( $_GET['class'] ) ? $_GET['class'] : NULL;
$cycle = !empty ( $_GET['cycle'] ) ? $_GET['cycle'] : NULL;	 
$serie = !empty ( $_GET['serie'] ) ? $_GET['serie'] : NULL;
	  
$mois = !empty ( $_GET['mois'] ) ? $_GET['mois'] : NULL;
$focus = !empty ( $_GET['focus'] ) ? $_GET['focus'] : NULL;
	  
setlocale(LC_TIME, 'fr_FR');
date_default_timezone_set('Europe/Paris');
$date = utf8_encode(strftime('%d %B'));	
	
	if($date =='01 octobre') {
	
$annee = utf8_encode(strftime('%Y')) +1; 
 }else { $annee = utf8_encode(strftime('%Y'));  }

$req =$bdd->prepare('SELECT count(ideleve) FROM eleve WHERE  class=? AND serie=? AND cycle=? AND annee=?');
$req->execute(array($class,$serie,$cycle,$annee));
$result = $req->fetchColumn();
$id1 = $result;

$statut='Non Effectué';
$req =$bdd->prepare('SELECT count(ideleve) FROM frais WHERE  statut=? AND mois=? AND annee=?');
$req->execute(array($statut,$mois,$annee));
$result1 = $req->fetchColumn();
$id2 = $result1;				
				
$statut='Effectué';
$req =$bdd->prepare('SELECT count(ideleve) FROM frais WHERE  statut=?AND mois=? AND annee=? ');
$req->execute(array($statut,$mois,$annee));
$result2 = $req->fetchColumn();
$id3 = $result2;	
				
$statut='Avance';
$req =$bdd->prepare('SELECT count(ideleve) FROM frais WHERE  statut=? AND mois=? AND annee=?');
$req->execute(array($statut,$mois,$annee));
$result4 = $req->fetchColumn();
$id4 = $result4;					
    
echo'Inscrits:'; echo $id1; echo '-'; echo'Effectué:'; echo $id3; echo'- Non effectué:';echo $id2;   echo'- Ayant Avancé:';echo $id4; echo' ';echo $class;echo $cycle;echo $serie;             
 ?> 			
		</p>
          </div>
       
          <div class="col-md-12 col-lg-8 mb-5">
         <table id="fantasyTable" class="display responsive no-wrap order-column" width="100%" >
<thead>
  <tr>
    <th>#</th>
    <th>Nom</th>
    <th>Prénom</th>
	  <th>Montant</th>
	  <th>Statut</th>
  </tr>
 </thead> 		 

	
<?php  
	
$focus = !empty ( $_GET['focus'] ) ? $_GET['focus'] : NULL;
$i=1;	  

try{		
 $req2 = $bdd->prepare('SELECT * FROM eleve WHERE  class=? AND serie=? AND cycle=? AND annee=?');
$req2->execute(array($class,$serie,$cycle,$annee));		 
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
	
while($don =  $req2->fetch()){	
		
echo '<tr>';
		
echo '<td>';echo $i;  echo'</td>';		
echo '<td><strong>';echo ''.$don['nom'].'';  echo'</strong></td>';
echo'<td>'; echo ''.$don['prenom'].''; echo'</td>';
		
	try{		
 $req1 = $bdd->prepare('SELECT * FROM frais WHERE ideleve=? AND mois=?');
$req1->execute(array($don['ideleve'],$mois));			 
}
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());

    }
			
	$don1 =  $req1->fetch();	
		
echo'<td>'; if ($don1['statut']!='') {
		
	echo ''.$don1['montant'].'';
		
} else {

echo 'Non Effectué'; 
		
} 

  
	
try{		
 $req2 = $bdd->prepare('SELECT * FROM frais WHERE ideleve=? AND mois=?');
$req1->execute(array($don['ideleve'],$mois));			 
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());

}
			
$don2 =  $req2->fetch();		
		
echo'</td>'; echo ''.$don2['statut'].''; echo'</td>';

$i= $i+1;		
echo'</td>';
} 	
				
?>  

</table>   
</div>

          <div class="col-lg-4">
            <div class="p-4 mb-3 bg-white">
              <h3 class="h5 text-black mb-3">Gestion Elèves</h3>
             <?php echo'<a href="tab-frais.php?'; echo 'focus='; echo''.$focus.''; echo'&amp;class= '; echo''.$class.''; echo '&amp;serie= ';echo''.$serie.''; echo '&amp;cycle= ';echo''.$cycle.''; echo '&amp;mois= ';echo''.$mois.''; echo '&amp;focus= ';echo''.$focus.''; echo '"';  echo 'class="btn btn-primary  py-2 px-4"'; echo'>'; ?><strong>Retour</strong></a>	

            </div>
            
            <div class="p-4 mb-3 bg-white">
             
            </div>
          </div>
        </div>
      </div>
    </div>

   

  </div>

  <script src="js/jquery-3.3.1.min.js"></script>
  <script src="js/jquery-migrate-3.0.1.min.js"></script>
  <script src="js/jquery-ui.js"></script>
  <script src="js/popper.min.js"></script>
  <script src="js/bootstrap.min.js"></script>
  <script src="js/owl.carousel.min.js"></script>
  <script src="js/jquery.stellar.min.js"></script>
  <script src="js/jquery.countdown.min.js"></script>
  <script src="js/jquery.magnific-popup.min.js"></script>
  <script src="js/bootstrap-datepicker.min.js"></script>
  <script src="js/aos.js"></script>
  

  <script src="js/main.js"></script>
    
  </body>
</html>
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
9 sept. 2022 à 12:07

Niveau amélioration du code .

1 - Dans ton fichier de connexion à la bdd, il serait bien d'y mettre une fonction du genre

function getColumSql ($sql, $datas=NULL){
  global $bdd; //on récupère la connexion à la bdd
  
  //execution PROPRE d'une requête SQL avec affichage des erreurs si besoin
  try{
    $req =$bdd->prepare($sql);
    $req->execute($datas);
    return $req->fetchColumn();
  }catch(Exception $e){
    echo "Erreur dans la requête " . $sql . PHP_EOL;
    echo " Erreur : " . $e->getMessage();
    Print_r($datas);
    exit;
  }
}


//retourne plusieurs lignes de la requête
function db_All($sql, $datas=NULL){
  global $bdd; //on récupère la connexion à la bdd
  
  //execution PROPRE d'une requête SQL avec affichage des erreurs si besoin
  try{
    $req =$bdd->prepare($sql);
    $req->execute($datas);
    return $req->fetchAll(); //on retourne tous les résultats de la reaquête dans un array
  }catch(Exception $e){
    echo "Erreur dans la requête " . $sql . PHP_EOL;
    echo " Erreur : " . $e->getMessage();
    Print_r($datas);
    exit;
  }
}

//retourne une seule ligne de la requête
function db_One($sql, $datas=NULL){
  global $bdd; //on récupère la connexion à la bdd
  
  //execution PROPRE d'une requête SQL avec affichage des erreurs si besoin
  try{
    $req =$bdd->prepare($sql);
    $req->execute($datas);
    return $req->fetch(); //on retourne le premier résultat de la requête dans un array
  }catch(Exception $e){
    echo "Erreur dans la requête " . $sql . PHP_EOL;
    echo " Erreur : " . $e->getMessage();
    Print_r($datas);
    exit;
  }
}

Ensuite, dans ton premier fichier :


<?php
session_start();
require_once ("connexion.php");

setlocale(LC_TIME, 'fr_FR');
date_default_timezone_set('Europe/Paris');
$date = utf8_encode(strftime('%d %B'));

//------------------------
//récupération propre des variables AVANT de les utilsier
//------------------------
$class = !empty($_GET['class']) ? $_GET['class'] : NULL;
$cycle = !empty($_GET['cycle']) ? $_GET['cycle'] : NULL;
$serie = !empty($_GET['serie']) ? $_GET['serie'] : NULL;

$mois = !empty($_GET['mois']) ? $_GET['mois'] : NULL;
$focus = !empty($_GET['focus']) ? $_GET['focus'] : NULL;

//------------------------
//Fonctions pour la gestion des élèves ( que tu pourrais mettre dans un fichier à part si besoin de l'utiliser dans d'autres scripts... )
//------------------------
function getFraisByStatut($statut, $mois, $annee) {
  $sql = 'SELECT count(ideleve) FROM frais WHERE  statut=? AND mois=? AND annee=?';
  $datas = array($statut, $mois, $annee);
  return getColumSql($sql, $datas);
}

function getElevesByCycleAnneClass($class, $serie, $cycle, $annee) {
  $sql = 'SELECT * FROM eleve WHERE  class=? AND serie=? AND cycle=? AND annee=?';
  $datas = array($class, $serie, $cycle, $annee);
  return db_All($sql, $datas);
}

function getFraisByEleve($id_eleve, $mois) {
  $sql = 'SELECT * FROM frais WHERE ideleve=? AND mois=?';
  $datas = array($id_eleve, $mois);
  return db_One($sql, $datas);
}

//------------------------
//Début du code
//------------------------
if ($date == '01 octobre') {
  $annee = utf8_encode(strftime('%Y')) + 1;
} else {
  $annee = utf8_encode(strftime('%Y'));
}


$sql = 'SELECT count(ideleve) FROM eleve WHERE  class=? AND serie=? AND cycle=? AND annee=?';
$datas = array($class, $serie, $cycle, $annee);
$id1 = getColumSql($sql, $datas);

$statut = 'Non Effectué';
$id2 = getFraisByStatut($statut, $mois, $annee);

$statut = 'Effectué';
$id3 = getFraisByStatut($statut, $mois, $annee);

$statut = 'Avance';
$id4 = getFraisByStatut($statut, $mois, $annee);

$eleves = getElevesByCycleAnneClass($class, $serie, $cycle, $annee);
?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>F.scolaire &mdash; Classe</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Nunito+Sans%3A200%2C300%2C400%2C700%2C900%7CRoboto+Mono%3A300%2C400%2C500">
    <link rel="stylesheet" href="fonts/icomoon/style.css">
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/magnific-popup.css">
    <link rel="stylesheet" href="css/jquery-ui.css">
    <link rel="stylesheet" href="css/owl.carousel.min.css">
    <link rel="stylesheet" href="css/owl.theme.default.min.css">
    <link rel="stylesheet" href="css/bootstrap-datepicker.css">
    <link rel="stylesheet" href="css/animate.css">
    <link rel="stylesheet" href="fonts/flaticon/font/flaticon.css">
    <link rel="stylesheet" href="css/fl-bigmug-line.css">
    <link rel="stylesheet" href="css/aos.css">
    <link rel="stylesheet" href="css/style.css">

    <link rel="stylesheet" href="css/Stile3.css">

  </head>
  <body>

    <div class="site-wrap">

      <div class="site-mobile-menu">
        <div class="site-mobile-menu-header">
          <div class="site-mobile-menu-close mt-3">
            <span class="icon-close2 js-menu-toggle"></span>
          </div>
        </div>
        <div class="site-mobile-menu-body"></div>
      </div> <!-- .site-mobile-menu -->


      <header class="site-navbar py-1" role="banner">

        <div class="container">
          <div class="row align-items-center">

            <div class="col-6 col-xl-2">
              <h1 class="mb-0"><a href="index.html" class="text-black h2 mb-0">CS<strong>Bilingue</strong></a></h1>
            </div>

            <div class="col-10 col-xl-10 d-none d-xl-block">
              <nav class="site-navigation text-right" role="navigation">

                <ul class="site-menu js-clone-nav mr-auto d-none d-lg-block">
                  <li class="active"><a href="index.html">Acceuil</a></li>
                  <li class="has-children">
                    <a href="category.html">Espace</a>
                    <ul class="dropdown">
                      <li><a href="panel-enseignant.html">Enseignant</a></li>
                      <li><a href="panel-enseignant.html">Gestionnaire</a></li>

                    </ul>
                  </li>
                  <li><a href="about.html">A propos</a></li>
                  <li><a href="contact.html">Contact</a></li>
                  <li><a href="panel-enseignant.html"><span class="rounded bg-primary py-2 px-3 text-white"><span class="h5 mr-2"></span> Se connecter</span></a></li>
                </ul>
              </nav>
            </div>

            <div class="col-6 col-xl-2 text-right d-block">

              <div class="d-inline-block d-xl-none ml-md-0 mr-auto py-3" style="position: relative; top: 3px;"><a href="#" class="site-menu-toggle js-menu-toggle text-black"><span class="icon-menu h3"></span></a></div>

            </div>

          </div>
        </div>

      </header>

      <div class="unit-5 overlay" style="background-image: url('images/hero_bg_2.jpg');">
        <div class="container text-center">
          <h2 class="mb-0">Frais scolaire</h2>

        </div>
      </div>

      <div class="site-section bg-light">
        <div class="container">
          <div class="row">
            <div class="col-md-7 text-center">
              <h2 class="font-weight-bold text-black" data-aos="fade">Liste des élèves</h2>
              <p>
                <?php
                echo'Inscrits:';
                echo $id1;
                echo '-';
                echo'Effectué:';
                echo $id3;
                echo'- Non effectué:';
                echo $id2;
                echo'- Ayant Avancé:';
                echo $id4;
                ?>
              </p>
            </div>

            <div class="col-md-12 col-lg-8 mb-5">
              <table id="fantasyTable" class="display responsive no-wrap order-column" width="100%" >
                <thead>
                  <tr>
                    <th>#</th>
                    <th>Nom</th>
                    <th>Prénom</th>
                    <th>Paiement</th>
                  </tr>
                </thead>


                <?php
                foreach ($eleves as $i => $don) {
                  $id_eleve = $don['ideleve'];
                  $don1 = getFraisByEleve($id_eleve, $mois);
                  echo '<tr>';
                  echo '<td>';
                  echo $i;
                  echo'</td>';
                  echo '<td><strong>';
                  echo '' . $don['nom'] . '';
                  echo'</strong></td>';
                  echo'<td>';
                  echo '' . $don['prenom'] . '';
                  echo'</td>';

                  echo'<td>';
                  if ($don1['statut'] != '') {
                    if ($don1['statut'] == 'Effectué') {
                      echo '<em class="fa fa-circle-o text-success  mr-2"></em>';
                      echo 'Effectué';
                    } else {
                      //----------------------------------------------------------//
                      // OU SONT MES CORRECTIONS POUR TON LIEN ?????
                      //----------------------------------------------------------//
                      echo'<a href="sg-frais.php?';
                      echo'class= ';
                      echo'' . $don['class'] . '';
                      echo '&amp;serie= ';
                      echo'' . $don['serie'] . '';
                      echo '&amp;cycle= ';
                      echo'' . $don['cycle'] . '';
                      echo '&amp;ideleve= ';
                      echo'' . $don['ideleve'] . '';
                      echo '&amp;mois=';
                      echo'' . $mois . '';
                      echo '&amp;nom= ';
                      echo'' . $don['nom'] . '';
                      echo '&amp;prenom= ';
                      echo'' . $don['prenom'] . '';
                      echo '">';
                      echo '' . $don1['statut'] . '';
                      echo'</a>';
                    }
                  } else {
                    //----------------------------------------------------------//
                    // OU SONT MES CORRECTIONS POUR TON LIEN ?????
                    //----------------------------------------------------------//
                    echo'<a href="sg-frais.php?';
                    echo'class= ';
                    echo'' . $don['class'] . '';
                    echo '&amp;serie= ';
                    echo'' . $don['serie'] . '';
                    echo '&amp;cycle= ';
                    echo'' . $don['cycle'] . '';
                    echo '&amp;ideleve= ';
                    echo'' . $don1['ideleve'] . '';
                    echo '&amp;mois=';
                    echo'' . $mois . '';
                    echo '&amp;ideleve=';
                    echo'' . $don['ideleve'] . '';
                    echo '&amp;nom= ';
                    echo'' . $don['nom'] . '';
                    echo '&amp;prenom= ';
                    echo'' . $don['prenom'] . '';
                    echo '">';
                    echo 'Cliquez-ici';
                    echo'</a>';
                  }


                  echo'</td>';
                }
                ?>
              </table>
            </div>

            <div class="col-lg-4">
              <div class="p-4 mb-3 bg-white">
                <h3 class="h5 text-black mb-3">Gestion Elèves</h3>
                <?php
                //----------------------------------------------------------//
                // OU SONT MES CORRECTIONS POUR TON LIEN ?????
                //----------------------------------------------------------//
                echo'<a href="tab-frais1.php?';
                echo'focus=';
                echo'' . $focus . '';
                echo'&amp;class= ';
                echo'' . $class . '';
                echo '&amp;serie=';
                echo'' . $serie . '';
                echo'&amp;cycle=';
                echo'' . $cycle . '';
                echo'&amp;mois=';
                echo'' . $mois . '';
                echo'&amp;focus=';
                echo'' . $focus . '';
                echo'"';
                echo 'class="btn btn-primary  py-2 px-4"';
                echo'>';
                ?><strong>Détails sur le paiement</strong></a>

              </div>

              <div class="p-4 mb-3 bg-white">

              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <script src="js/jquery-3.3.1.min.js"></script>
    <script src="js/jquery-migrate-3.0.1.min.js"></script>
    <script src="js/jquery-ui.js"></script>
    <script src="js/popper.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/owl.carousel.min.js"></script>
    <script src="js/jquery.stellar.min.js"></script>
    <script src="js/jquery.countdown.min.js"></script>
    <script src="js/jquery.magnific-popup.min.js"></script>
    <script src="js/bootstrap-datepicker.min.js"></script>
    <script src="js/aos.js"></script>
    <script src="js/main.js"></script>

  </body>
</html>

Voila .. je te laisse faire les corrections que j'ai indiqué en commentaires du code ...

puis à coder ta seconde page sur le même modèle ..

Reviens nous voir avec les codes modifiés si ton souci persiste .. et pense bien à nous indiquer le lien qui se trouve dans ton navigateur une fois que tu as cliqué dessus...


0
modemo2018 Messages postés 231 Date d'inscription vendredi 15 novembre 2019 Statut Membre Dernière intervention 13 octobre 2022
10 oct. 2022 à 17:23

J'ai réglé le problème,Ce PB était dû au fait que je faisais passé les variables avec d'espace.

Merci beaucoup pour votre aide.

0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
Modifié le 9 sept. 2022 à 12:58

bonjour,

Si tu suspectes un problème dans le passage de données via l'url, il est utile d'examiner l'url tel qu'il est dans le code source affiché par la page 1, d'examiner les urls affichés par tes pages dans la barre d'adresse, et, bien sûr de tester en modifiants ces urls dans la barre d'adresse.

Si tu souhaites que nous participions à cette analyse, il est utile de partager ces informations.

0