pb de doublon suite select

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pb de doublon suite select

Re: pb de doublon suite select

par vincentpablo02 » 03 févr. 2010, 22:35

alors là merci !
exactement ce que je voulais - c'est souvent le plus simple qui est le plus inaccessible !!!
=D>

Re: pb de doublon suite select

par vincentpablo02 » 03 févr. 2010, 22:27

Merci Ryle

Je ne voyais pas cela comme ca ! :?
en même temps, on est dans la rubrique débutant ! :D
je teste de suite :wink:

Re: pb de doublon suite select

par Ryle » 03 févr. 2010, 21:05

Tu peux en effet faire une première boucle sur tes catégories, puis, pour chaque catégorie aller chercher les sous-catégories qui lui sont associées. C'est sans doute l'algorythme le plus simple. L'inconvénient, c'est que cela va te faire un nombre de requêtes proportionnel au nombre de catégories dans ta base, ce qui d'un point de vue performance est loin d'être terrible.

Je te recommande donc de ne faire qu'une seule requête et de laisser le traitement de mise en page à php tel que tu as commencé. Ce qui te manque, c'est simplement une variable temporaire ou stocker la catégorie courrante, que tu pourras afficher lorsqu'elle change :
$categorie = '' ; // valeur initiale, vide par défaut
while ($rs2 = mysql_fetch_assoc($query2))  { // si tu utilises uniquement les noms des champs pour accéder aux donnée, _assoc est plus léger que _array

   if ($categorie != $rs2['categorie']) { // tu rencontres une nouvelle catégorie
      echo $rs2['categorie'] . "<br />"; // affiche la catégorie
      $categorie = $rs2['categorie']; // stocke la nouvelle catégorie dans la variable temporaire
   }

   echo $rs2['sous_categorie'] . "<br />";
}
Voici la base de ta boucle... à partir de là, tu peux avec quelques conditions bien placées ouvrir et fermer tes listes quand il le faut :)

Re: pb de doublon suite select

par stealth35 » 03 févr. 2010, 00:15

faut faire 2 boucle

tu boucles sur les categories qui elle boucles leur sous categories

[non résolu-->finalement] pb de doublon suite select

par vincentpablo02 » 02 févr. 2010, 23:55

j'ai crié victoire trop vite !! ne fonctionne pas sous IE 8 #-o

je vous remets mon code qui ne va pas :
<?php
  $sql2 = 'select categorie.categorie, sous_categorie.sous_categorie, sous_categorie.ID
        from categorie, sous_categorie where sous_categorie.ID_categorie=categorie.ID';
$query2 = mysql_query($sql2);
 $result2 = mysql_numrows($query2);
      if ($result2) { 
  while ($rs2 = mysql_fetch_array($query2))
  {
    echo '
        <ul class="niveau1">
           <li>
            <img alt=" " src="images/plus.gif" border="none"><a href="index.php?categorie_ID='.$rs2['ID'].'" class="lien" target="_parent">'.$rs2['categorie'].'</a>

        <ul class="niveau2">
                  <li class="plus">
                        <a href="index.php?sous_categorie='.$rs2['sous_categorie'].'" class="lien" target="_parent">'.$rs2['sous_categorie'].'</a>
                    </a>
                  </li>
               </ul>
            </li>
        </ul>
    </div>';

 }
} else {
   echo 'pas de catégorie trouvée';
 }
?>
le résultat voulu est :
* catégorie 1
- sous catégorie 1
- sous catégorie 2...
*catégorie 2.....

mais ce n'est pas le cas car je ne sais pas faire de boucle !

Re: [résolu] pb de doublon suite select

par vincentpablo02 » 02 févr. 2010, 22:34

j'ai trouvé une solution qui me va bien : le javascript !
trouvé sur ce site qui me sauve la mise http://www.css-faciles.com
merci quand même ! :wink:
<html>
    <head>
      <style type="text/css">
        #monmenu {font-family: trebuchet ms, arial, tahoma, verdana, sans-serif; font-size: 90%; font-weight:bold;}
        #monmenu ul ul {display: none; left: 144px; top: -1px; position: absolute; margin:0px; padding: 0px; border: 1px solid #B0B0B0;}
        #monmenu li {list-style-type: none; position: relative; width: 140px; background-color: #E0E0E0; padding: 2px; margin: 0px}
        #monmenu li:hover, #monmenu li.sfhover {background-color: #FFFF70;}
        #monmenu li a {text-decoration:none;}
        #monmenu li:hover ul.niveau2, #monmenu li li:hover ul.niveau3, #monmenu li.sfhover ul.niveau2, #monmenu li li.sfhover ul.niveau3 {display: block}
        #monmenu li.plus {background-position:right; background-image: url(illustrations/ fdroite.gif); background-repeat: no-repeat; border-bottom: 1px solid #B0B0B0;}
      </style>
      <!--[if lt IE 7]>
        <script type="text/javascript">
            // Fonction destinée à remplacer le "LI:hover" pour IE 6
            sfHover = function() {
                var sfEls = document.getElementById("monmenu").getElementsByTagName("li");
                for (var i=0; i<sfEls.length; i++) {
                    sfEls[i].onmouseover = function() {
                        this.className = this.className.replace(new RegExp(" sfhover"), "");
                        this.className += " sfhover";
                    }
                    sfEls[i].onmouseout = function() {
                        this.className = this.className.replace(new RegExp(" sfhover"), "");
                    }
                }
            }
            if (window.attachEvent) window.attachEvent("onload", sfHover);
        </script>
        <style type="text/css">
            #monmenu li {width: 144px;}
        </style>
     <![endif]-->
     <meta name="keywords"
 content="CSS, cascading style sheets, mise en page, design, site, web, techniques, sites, webmaster, page">
     <meta name="description"
 content="Voici un exemple de code de menu hiérarchique déroulant réalisé à l'aide de CSS.">
     <title>Exemple de menu hiérarchique en CSS</title>
  </head>
  <body>
    <div id="monmenu">
        <ul class="niveau1">
           <li> Menu
               <ul class="niveau2">
                  <li class="plus">
                    <a href= "http://www.rankspirit.com">
                       <img alt=" " src="illustrations/ menu-deroulant/ bebe.gif"
 border="none">
                       Extras
                    </a>
                    <ul class="niveau3">
                      <li>
                        <a href= "http://www.rankspirit.com">
                            <img alt=" " src="illustrations/ menu-deroulant/ note.gif"
 border="none">
                           Demander la note
                         </a>
                        </li>
                        <li>
                            <a href= "http://www.rankspirit.com">
                                <img alt=" "
 src="illustrations/ menu-deroulant/ serveuse.gif"
 border="none">                 Draguer la serveuse
                            </a>
                        </li>
                    </ul>
                  </li>
                  <li>
                    <a href= "http://www.rankspirit.com">
                        <img alt=" "
 src="illustrations/ menu-deroulant/ entree.gif"
 border="none">
                        Entrée
                    </a>
                  </li>
                  <li>
                    <a href= "http://www.rankspirit.com">
                        <img alt=" "
 src="illustrations/ menu-deroulant/ plat.gif"
 border="none">
                        Plat
                    </a>
                  </li>
                  <li>
                     <a href= "http://www.rankspirit.com">
                        <img alt=" "
 src="illustrations/ menu-deroulant/ dessert.gif"
 border="none">
                        Dessert
                     </a>
                   </li>
                   <li>
                      <a href= "http://www.rankspirit.com">
                        <img alt=" "
 src="illustrations/ menu-deroulant/ cafe.gif"
 border="none">         Café
                      </a>
                   </li>
                </ul>
              </li>
        </ul>
    </div>
  </body>
</html>

Re: pb de doublon suite select

par vincentpablo02 » 02 févr. 2010, 18:02

bonjour
zeus, pas solution ? :priere:

Re: pb de doublon suite select

par vincentpablo02 » 01 févr. 2010, 22:00

#-o ce serait peut être mieux effectivement !
:)

le pb c'est que je fais un simple select :
$query = 'select ID, categorie
        from categorie order by ID';
$query = mysql_query($sql);
 $result = mysql_numrows($query);
      if ($result) {
  while ($rs = mysql_fetch_array($query)) {
ensuite je met en forme le résultat par un lien (GET) pour appeller la catégorie et rechercher les sous-catégories rattachées :
if (isset($_GET['categorie_ID'])){

$ID_categorie = $_GET['categorie_ID'];

$sql2 = 'select categorie.categorie, sous_categorie.sous_categorie, sous_categorie.ID
        from categorie, sous_categorie where sous_categorie.ID_categorie=categorie.ID and sous_categorie.ID_categorie="'.$ID_categorie.'"';
$query2 = mysql_query($sql2);
 $result2 = mysql_numrows($query2);
      if ($result2>0) {
echo '<div id="sous_categorie">';

  while ($rs2 = mysql_fetch_array($query2)) {

echo ''.$rs2['sous_categorie'].' .....


c'est là que ca devient complexe pour moi ! car si je veux afficher ensuite en dessous la suite des catégories comment faire sans avoir a recommencer depuis le début ??

Re: pb de doublon suite select

par stealth35 » 01 févr. 2010, 01:40

Bonsoir,

Je suis désolé, mais j'ai égaré ma boule de crystal, est-ce que tu pourrais nous montrer ta requête SQL ( et éventuellement le code PHP) qui te permet de récupérer tout ça ? ;)

Code : Tout sélectionner

apt-get install crystal-ball
:mrgreen:

Re: pb de doublon suite select

par zeus » 31 janv. 2010, 23:57

Bonsoir,

Je suis désolé, mais j'ai égaré ma boule de crystal, est-ce que tu pourrais nous montrer ta requête SQL ( et éventuellement le code PHP) qui te permet de récupérer tout ça ? ;)

pb de doublon suite select

par vincentpablo02 » 31 janv. 2010, 23:05

Bonsoir à tous,
j'ouvre un nouveau topic pour mon autre pb ;

quand je fais un select pour lister les categories et sous-categories voilà ce que j'ai :

categorie 1
sous-categorie 1
sous-categorie 2
sous-categorie 3....
categorie 1 (il me met un doublon a cause de mon 2eme select pour afficher la suite des catégories ! )
categorie 2....

alors que j'aimerais ceci :
categorie 1
sous-categorie 1
sous-categorie 2
sous-categorie 3....
on reprend à la categorie suivante
categorie 2....

si vous avez une idée !
merci par avance :)