8768 sujets

Développement web côté serveur, CMS

Salut à tous,
je viens vers vous pour un petit souci de boucle.

la bdd menu :
id | nom ...
1 | nom1
2 | nom2
3 | nom3
4 | nom4

la bdd sousmenu : dans cet bdd idmenu et join au id de la bdd sousmenu
id | nom | idmenu
1 | nom1 | 4
2 | nom2 | 2
3 | nom3 | 3
4 | nom4 | 1


			$i=0;
			$sql="SELECT sousmenu.id AS lidsousmenu, sousmenu.nom AS lnomsousmenu, sousmenu.position AS lpositionsousmenu, sousmenu.url AS lurlsousmenu, sousmenu.idmenu AS lidmenusousmenu, menu.id AS midmenu, menu.nom AS mnommenu FROM sousmenu, menu  WHERE  menu.id=sousmenu.idmenu ORDER BY lpositionsousmenu ASC ";
			$req = mysql_query($sql) or die(mysql_error());
			
				while($d = mysql_fetch_assoc($req))
				{
				$lacat=$d['mnommenu'];

				$i++;
				?>
				<div style="padding:0px"><?php echo $lacat;?></div>
				<li>
				<div class="ui-icon ui-icon-arrowthick-2-n-s" style="float:left;margin: 5px 30px 0 -20px;"></div>
					<?php echo $d['icon'];?>
					<input type="hidden" name="souscategory[<?php echo $i; ?>][lidsousmenu]"  value="<?php echo $d['lidsousmenu'];?>" size="10"/>
					<input type="text" name="souscategory[<?php echo $i; ?>][lnomsousmenu]"  value="<?php echo $d['lnomsousmenu'];?>" size="50" />
					<input type="hidden" class="positioninput2" name="souscategory[<?php echo $i; ?>][lpositionsousmenu]"  value="<?php echo $d['lpositionsousmenu'];?> "/>
					<a href="tccmodules/menu/sousmenu.php?Action=Suppression&id=<?php echo $d['lidsousmenu']; ?>" title='Supprimer'><img style="vertical-align:middle" src="tccmodules/menu/trash.png" alt="Supprimer" /></a>
					</li>
				<?php
				}


effectivement je ne voit pas comment faire pour afficher la catégorie dans mon code "$lacat" un seul fois pour chaque catégorie.

Si qql'un pouvais m'aiguiller cela serait cool.
Merci d'avance

Cdt
Salut tu cherche a faire cela dans un select ?

Exemple

Menu 1
Sous menu 1
Sous menu 1
Sous menu 1
Menu 2
Sous menu 2
Sous menu 2
Menu 3
Sous menu 3
Sous menu 3
Etc...
En faite la requête pour le sous menu doit être dans ta boucle ! je te prepare un code et le poste dans l'heure !
Voici un exemple pour un select d'une cat_etiquette = a ton menu et cat_categorie = a tes sous menu

 <select name="c" class="input_recherche">
          <option value="">- - - Toutes les catégories - - -</option>
          <?php 
mysql_select_db($database_db, $db);
$query_etiquette = "SELECT * FROM cat_etiquette ORDER BY id_etiquette ASC";
$etiquette = mysql_query($query_etiquette, $db) or die(mysql_error());
$row_etiquette = mysql_fetch_assoc($etiquette);
$totalRows_etiquette = mysql_num_rows($etiquette);
?>
          <?php do { ?>
          <optgroup label="<?php echo $row_etiquette['etiquette']; ?>">
          <?php   
mysql_select_db($database_db, $db);
$query_categorie = "SELECT * FROM cat_categorie WHERE id_etiquette = $row_etiquette[id_etiquette] ORDER BY id_categorie ASC";
$categorie = mysql_query($query_categorie, $db) or die(mysql_error());
$row_categorie = mysql_fetch_assoc($categorie);
$totalRows_categorie = mysql_num_rows($categorie);


?>
          <?php do { ?>
          <option value="<?php echo $row_categorie['id_categorie']; ?>" <?php if (!(strcmp($row_categorie['id_categorie'], htmlentities($_GET['c'], ENT_COMPAT, 'UTF-8')))) {echo "SELECTED";} ?>><?php echo $row_categorie['categorie']; ?></option>
          <?php } while ($row_categorie = mysql_fetch_assoc($categorie)); ?>
          </optgroup>
          <?php } while ($row_etiquette = mysql_fetch_assoc($etiquette)); ?>
        </select>
ouh la je vais avoir du mal a porter cela dans mon code
Modifié par spawns (29 Jul 2014 - 17:39)