[RESOLU] simplification boucles menu

Eléphant du PHP | 172 Messages

05 nov. 2018, 19:56

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  -->

Eléphant du PHP | 130 Messages

06 nov. 2018, 17:37

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.

Eléphant du PHP | 172 Messages

06 nov. 2018, 20:26

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  -->

Eléphant du PHP | 172 Messages

13 nov. 2018, 19:57

Bonsoir, comme je vois que personne ne trouve à redire je mets en résolut.
Encore Merci