Page 1 sur 1

simplification boucles menu

Posté : 05 nov. 2018, 19:56
par bob56@
Bien le bonjour à tous :D

Voilà ma question:
j'ai un script que je viens de terminer et fonctionnel. Mais à première vu je pense qu'on peut le simplifier.

oui ? non ?

"je peux grâce à ce script activer dans le menu de la page les noms des pages (3-4-5-blog) "

je me suis inspiré pour l'activation ou non de mon premier post de janvier 2018:

php-debutant/creer-bouton-desactiver-ac ... 78998.html

Par avance merci de votre réponse.
<?php  
// connexion base
         include("include/fonctions.php");   /* ma base mes identifiants */  
?>
<!-- debut menu deux premières pages -->
<?php  
// on crée la requete SQL 
$sql = "SELECT * FROM `table_nom_pages` WHERE 1";  
$nom_pages = $conn->query($sql);
$result1 = $conn->query($sql);
$result2 = $conn->query($sql);
?> 
<li><a href="index.php"> <?php  while ($row = $result1->fetch_assoc()) {$nom_pages = $row['nom_page_index'] ; echo $nom_pages ;} ?>  </a></li>
<li><a href="page_2.php"> <?php  while ($row = $result2->fetch_assoc()) {$nom_pages = $row['nom_page_2'] ; echo $nom_pages ;} ?>  </a></li> 
<!-- fin menu deux premières pages -->
<!-- debut menu pages 3-4-5-blog . Possibilité de désactiver ces pages -->
<?php  
// on crée la requete SQL 
$sql = "SELECT * FROM `table_nom_pages`, `acces_page_3`  WHERE 1";  
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
  $display_acces_page_3 = $row['choix'];
if($display_acces_page_3 == 1){
?>
	<li><a href="page_3.php"> <?php  echo $row['nom_page_3']; ?>  </a></li>
<?php 
}}}  
?>  
<?php  
// on crée la requete SQL 
$sql = "SELECT * FROM `table_nom_pages`, `acces_page_4`  WHERE 1";  
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
  $display_acces_page_4 = $row['choix'];
if($display_acces_page_4 == 1){
?>
	<li><a href="page_4.php"> <?php  echo $row['nom_page_4']; ?>  </a></li>
<?php 
}}}
?>  
<?php  
// on crée la requete SQL 
$sql = "SELECT * FROM `table_nom_pages`, `acces_page_5`  WHERE 1";  
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
  $display_acces_page_5 = $row['choix'];
if($display_acces_page_5 == 1){
?>
	<li><a href="page_5.php"> <?php  echo $row['nom_page_5']; ?>  </a></li>
<?php 
}}}
?>  
<?php  
// on crée la requete SQL 
$sql = "SELECT * FROM `table_nom_pages`, `acces_page_blog`  WHERE 1";  
$result = $conn->query($sql);
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
  $display_acces_page_blog = $row['choix'];
if($display_acces_page_blog == 1){
?>
	<li><a href="blog.php"> <?php  echo $row['nom_page_blog']; ?>  </a></li>
<?php 
}}}
?>  
<!-- fin menu pages 3-4-5-blog  -->

Re: simplification boucles menu

Posté : 06 nov. 2018, 17:37
par benv8nam
Le "WHERE 1" ne sert à rien dans tes requêtes.
Il serait bien de séparer l'affichage des requêtes, voit le découpage MVC pour réaliser cela.

Tu pourras ensuite faire une méthode qui affichera tes "li", tes "a" ainsi tu n'auras pas à répéter les boucles, tu appelleras juste ta méthode.

Re: simplification boucles menu

Posté : 06 nov. 2018, 20:26
par bob56@
OK, merci bien benv8nam

j'ai modifié les choix bdd et j'arrive à ce script.

Peut-on faire plus simple?

<?php  
// connexion base
         include("include/fonctions.php");   /* ma base mes identifiants */  
?>
<!-- debut menu deux premières pages -->
<?php  
// on crée la requete SQL 
$sql = "SELECT * FROM `table_nom_pages`, `acces_page_3`, `acces_page_4`, `acces_page_5`, `acces_page_blog`   ";  
$result1 = $conn->query($sql);
$result2 = $conn->query($sql);
$result3_4_5_blog = $conn->query($sql);  
?> 
<li><a href="index.php"> <?php  while ($row = $result1->fetch_assoc()) {$nom_pages = $row['nom_page_index'] ; echo $nom_pages ;} ?>  </a></li>
<li><a href="page_2.php"> <?php  while ($row = $result2->fetch_assoc()) {$nom_pages = $row['nom_page_2'] ; echo $nom_pages ;} ?>  </a></li> 
<!-- fin menu deux premières pages -->
<!-- debut menu pages 3-4-5-blog . Possibilité de désactiver ces pages -->
<?php  
if ($result3_4_5_blog->num_rows > 0) {
    while($row = $result3_4_5_blog->fetch_assoc()) {
$desact_3 = $row['choix_3'];
if($desact_3 == 1){
?>
  <li><a href="page_3.php"> <?php  echo $row['nom_page_3']; ?>  </a></li>
<?php
}
$desact_4 = $row['choix_4'];
if($desact_4 == 1){
?>
  <li><a href="page_4.php"> <?php  echo $row['nom_page_4']; ?>  </a></li>
<?php
}
$desact_5 = $row['choix_5'];
if($desact_5 == 1){
?>
  <li><a href="page_5.php"> <?php  echo $row['nom_page_5']; ?>  </a></li>
<?php
}
$desact_blog = $row['choix_blog'];
if($desact_blog == 1){
?>
  <li><a href="blog.php"> <?php  echo $row['nom_page_blog']; ?>  </a></li>
<?php
}
}	
}
?>
<!-- fin menu pages 3-4-5-blog  -->

Re: simplification boucles menu

Posté : 13 nov. 2018, 19:57
par bob56@
Bonsoir, comme je vois que personne ne trouve à redire je mets en résolut.
Encore Merci