Condenser le code

Messages postés
41
Date d'inscription
vendredi 15 juillet 2005
Dernière intervention
4 juin 2017
- - Dernière réponse : nagaD.scar
Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Dernière intervention
29 août 2018
- 30 nov. 2016 à 15:35
Bonjour,
voici mon code :
<nav>
<div id="menu0">
</div>
<div id="menu1">
<ul>
<?php
$val = $link->query('SELECT TITRE FROM bdm_menus where ORDRE = 1');
while ($donnees = $val->fetch()) {
echo $donnees['TITRE'];
}
$val->closeCursor();
?>
<?php
$val = $link->query('SELECT TITRE FROM bdm_sous_menu where MENU = 1 ORDER BY VAL');
while ($donnees = $val->fetch()) {
echo '<li>'.$donnees['TITRE'].'</li>';
}
$val->closeCursor();
?>
</ul>
</div>
<div id="menu2">
<ul>
<?php
$val = $link->query('SELECT TITRE FROM bdm_menus where ORDRE = 2');
while ($donnees = $val->fetch()) {
echo $donnees['TITRE'];
}
$val->closeCursor();
?>
<?php
$val = $link->query('SELECT TITRE FROM bdm_sous_menu where MENU = 2 ORDER BY VAL');
while ($donnees = $val->fetch()) {
echo '<li>'.$donnees['TITRE'].'</li>';
}
$val->closeCursor();
?>
</ul>
</div>
<div id="menu3">
<ul>
<?php
$val = $link->query('SELECT TITRE FROM bdm_menus where ORDRE = 3');
while ($donnees = $val->fetch()) {
echo $donnees['TITRE'];
}
$val->closeCursor();
?>
<?php
$val = $link->query('SELECT TITRE FROM bdm_sous_menu where MENU = 3 ORDER BY VAL');
while ($donnees = $val->fetch()) {
echo '<li>'.$donnees['TITRE'].'</li>';
}
$val->closeCursor();
?>
</ul>
</div>
<div id="menu4">
<ul>
<?php
$val = $link->query('SELECT TITRE FROM bdm_menus where ORDRE = 4');
while ($donnees = $val->fetch()) {
echo $donnees['TITRE'];
}
$val->closeCursor();
?>
<?php
$val = $link->query('SELECT TITRE FROM bdm_sous_menu where MENU = 4 ORDER BY VAL');
while ($donnees = $val->fetch()) {
echo '<li>'.$donnees['TITRE'].'</li>';
}
$val->closeCursor();
?>
</ul>
</div>
<div id="menu5">
<ul>
<?php
$val = $link->query('SELECT TITRE FROM bdm_menus where ORDRE = 5');
while ($donnees = $val->fetch()) {
echo $donnees['TITRE'];
}
$val->closeCursor();
?>
<?php
$val = $link->query('SELECT TITRE FROM bdm_sous_menu where MENU = 5 ORDER BY VAL');
while ($donnees = $val->fetch()) {
echo '<li>'.$donnees['TITRE'].'</li>';
}
$val->closeCursor();
?>
</ul>
</div>
<div id="menu6">
</div>
</nav>

je répète 5 fois la même choses et je n'arrive pas à l'écrire de manière plus courte, ou compacte. Bref si quelqu'un pouvait me donner un coup de main ce ne serait pas de refus.
Le point positif, est qu'il fonctionne.
je voulais passer par une requête préparée du genre :

$val = $link->prepare('SELECT TITRE FROM bdm_menus where ORDRE = ?

mais je n'arrive pas à la mettre en oeuvre pour que cela m'affiche mes champs TITRE.
Merci d'avance pour votre aide.


--
Afficher la suite 

Votre réponse

1 réponse

Messages postés
14324
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
0
Merci
Peut être avec une boucle for ?
seyvapul
Messages postés
41
Date d'inscription
vendredi 15 juillet 2005
Dernière intervention
4 juin 2017
-
Oui, effectivement, avec une boucle je réduit le code, mais je ne trouve pas cela "élégant".

<nav>
<div id="menu0">
</div>
<?php for ($i=1; $i<6; $i++) {?>
<div id="menu<?=$i?>">
<ul>
<?php
$val = $link->query('SELECT TITRE FROM bdm_menus where ORDRE = '.$i);
while ($donnees = $val->fetch()) {
echo $donnees['TITRE'];
}
$val = $link->query('SELECT TITRE FROM bdm_sous_menu where MENU = '.$i.' ORDER BY VAL');
while ($donnees = $val->fetch()) {
echo '<li>'.$donnees['TITRE'].'</li>';
}
$val->closeCursor();
?>
</ul>
</div> <?php }?>

<div id="menu6">
</div>
</nav>
nagaD.scar
Messages postés
4269
Date d'inscription
samedi 8 septembre 2007
Dernière intervention
29 août 2018
-
Salut,
Si la mise en forme ne plait pas à cause du mix html/php tu peux tenter:

<nav>
 <div id="menu0"></div>
<?php 
 $MenuValue = "<ul>";
 for ($i=1; $i<6; $i++) {
  $MenuValue.= "<div id='menu" . $i . "'><ul>";
  $val = $link->query('SELECT TITRE FROM bdm_menus where ORDRE = '.$i);
  while ($donnees = $val->fetch()) {
   $MenuValue .= $donnees['TITRE'];
  }
  $val->closeCursor();
  $val = $link->query('SELECT TITRE FROM bdm_sous_menu where MENU = '.$i.' ORDER BY VAL');
  while ($donnees = $val->fetch()) {
   $MenuValue .= '<li>'.$donnees['TITRE'].'</li>';
  }
  $val->closeCursor();
  $MenuValue .= '</ul></div>';
 }
 echo $MenuValue;
?>

 <div id="menu6"></div>
</nav>


Naga
Commenter la réponse de NHenry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.