IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

PB de sous categories qui n'apparaissent pas


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut PB de sous categories qui n'apparaissent pas
    Bonjour a tous, et tout d'abord merci pour cette mine d'information et a tous ceux qui aides sur ce forum, j'espere un jour en faire partie sans raconter de conneries

    bon bin voila, cela fait deux jours maintenant que je rame pour trouver la solution a ce probleme, en fait il s'agit de categories avec des sous categories, le but du code ci dessous
    est que l'orsque un utilisateur clique sur une categorie, les sous categories correspondantes a cette categorie aparaissent juste en dessous.
    Je vous ai copié toute la DIV histoire de rien oublier, le warning mysql est a propose de cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    while ($catBrowse1=mysql_fetch_array($getCats1)) {
     
    //et donc de cette query selon moi:
     $getCats1 = mysql_query("SELECT `c`.`id`, `c`.`name`, `c`.`parent`, `c`.`items_counter`, `c`.`hover_title`, 
    											  COUNT(`p`.`id`) AS `nbsubcats` 
    											  FROM `fotos_categories` AS `c` 
    											  LEFT JOIN `fotos_categories` AS `p` ON `p`.`parent`=`c`.`id` OR (`p`.`parent`=0 AND `c`.`id`=`p`.`id`)
    											  WHERE `c`.`parent`=`$catBrowse[id]` AND `c`.`userid`=0 
    											  GROUP BY `c`.`id` 
    											  ORDER BY `c`.`theorder`, `c`.`name`") or die(mysql_error());
                          }
    voila j'espere qu'une ame charitable pourra se pencher sur mon problème


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <div id="exp1102170166">
                   <table width="100%" border="0" cellspacing="0" cellpadding="4" class="bordercat" >
                      <?
                $getCats = mysql_query("SELECT `c`.`id`, `c`.`name`, `c`.`parent`, `c`.`items_counter`, `c`.`hover_title`, 
    								   COUNT(`p`.`id`) AS `nbsubcats` 
    								   FROM `fotos_categories` AS `c` 
    								   LEFT JOIN `fotos_categories` AS `p` ON `p`.`parent`=`c`.`id` OR (`p`.`parent`=0 AND `c`.`id`=`p`.`id`) 
    								   WHERE `c`.`parent`=0 AND `c`.`userid`=0 
    								   GROUP BY `c`.`id`
    								   ORDER BY `c`.`theorder`, `c`.`name`") or die(mysql_error());
                while ($catBrowse=mysql_fetch_array($getCats)) {
                  ##$nbSubCats = getSqlNumber("SELECT id FROM fotos_categories WHERE parent='".$catBrowse['id']."'");
     
                  if ($catBrowse['nbsubcats']>0) $catLink=$path.processLink('categories', array('category' => $c_lang[$catBrowse['id']], 'parent' => $catBrowse['id']/*, 'show' => 'subcats'*/));
                  else $catLink=$path.processLink('categories', array('category' => $c_lang[$catBrowse['id']], 'parent' => $catBrowse['id'])); ?>
                      <tr>
                         <td class="contentfont" bgcolor="#eadfcf">
                         <img src="themes/<?=$setts['My_theme'];?>/img/arrow.gif" hspace="3" align="absmiddle" style='cursor:hand;' onclick='div = document.getElementById("subcats<?=$catBrowse['id'];?>"); if(div.style.display=="none") {div.style.display = "block"; } else {div.style.display = "none";}'>
                         <a href="<?=$catLink;?>" <? echo ($catBrowse['hover_title']!="") ? "title=\"".$catBrowse['hover_title']."\"":""; ?>><? echo $c_lang[$catBrowse['id']];?>
                            <? if (eregi('Y', $setts['enable_cat_counters'])) echo ($catBrowse['items_counter']!=0) ? "(<strong>".$catBrowse['items_counter']."</strong>)":"(".$catBrowse['items_counter'].")";?>
                           </a>
                         <div id='subcats<?=$catBrowse['id'];?>' class="contentfont" style="display: block;<?/*if(strpos($_SERVER["REQUEST_URI"],"categories.php")!==false&&$_REQUEST['parent']==$catBrowse['id']) echo 'block'; else echo 'none';*/?>">
    <?
                        if ($_GET['parent']){
                          $c_id = $_GET['parent'];
                        } elseif ($_GET['category']){
                          $c_id = $_GET['category'];
                        }
                        $r1 = mysql_query("SELECT `parent` 
    									  FROM `fotos_categories` 
    									  WHERE `id`='$c_id'") or die(mysql_error());
    					list ($par) = mysql_fetch_array($r1);
     
                        if ($par ==  $catBrowse[id] || $_REQUEST['parent']==$catBrowse['id'] || $_GET['category'] == $catBrowse['id']){
                          $getCats1 = mysql_query("SELECT `c`.`id`, `c`.`name`, `c`.`parent`, `c`.`items_counter`, `c`.`hover_title`, 
    											  COUNT(`p`.`id`) AS `nbsubcats` 
    											  FROM `fotos_categories` AS `c` 
    											  LEFT JOIN `fotos_categories` AS `p` ON `p`.`parent`=`c`.`id` OR (`p`.`parent`=0 AND `c`.`id`=`p`.`id`)
    											  WHERE `c`.`parent`=`$catBrowse[id]` AND `c`.`userid`=0 
    											  GROUP BY `c`.`id` 
    											  ORDER BY `c`.`theorder`, `c`.`name`") or die(mysql_error());
                          }
                         while ($catBrowse1=mysql_fetch_array($getCats1)) {
                           ##$nbSubCats = getSqlNumber("SELECT id FROM fotos_categories WHERE parent='".$catBrowse['id']."'");
     
                           if ($catBrowse1['nbsubcats']>0) $catLink1=$path.processLink('categories', array('category' => $c_lang[$catBrowse1['id']], 'parent' => $catBrowse1['id']));
                           else $catLink1=$path.processLink('categories', array('category' => $c_lang[$catBrowse1['id']], 'parent' => $catBrowse1['id'])); ?>
                         &nbsp;
                          <img src="themes/<?=$setts['My_theme'];?>/img/arrow.gif" hspace="3" align="absmiddle" style="margin: 5px;">
     
                          <a href="<?=$catLink1;?>" <? echo ($catBrowse1['hover_title']!="") ? "title=\"".$catBrowse1['hover_title']."\"":""; ?>><? echo $c_lang[$catBrowse1['id']];?>
                             <? if (eregi('Y', $setts['enable_cat_counters'])) echo ($catBrowse1['items_counter']!=0) ? "(<strong>".$catBrowse1['items_counter']."</strong>)":"(".$catBrowse1['items_counter'].")";?>
                          </a><br />
                         <? } ?>
     
                         </div>
    Je remercie par avance ceux qui auront la patience de lire tout ce ******
    lelandais1

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour et Bienvenue sur Developpez .
    Tu dois mettre la boucle while dans le clause if car si les conditions ne sont pas vraie, la requête n'est pas executé ainsi $getCats1 n'est pas une ressource valide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    if ($par ==  $catBrowse[id] || $_REQUEST['parent']==$catBrowse['id'] || $_GET['category'] == $catBrowse['id']){
                          $getCats1 = mysql_query("SELECT `c`.`id`, `c`.`name`, `c`.`parent`, `c`.`items_counter`, `c`.`hover_title`, 
    											  COUNT(`p`.`id`) AS `nbsubcats` 
    											  FROM `fotos_categories` AS `c` 
    											  LEFT JOIN `fotos_categories` AS `p` ON `p`.`parent`=`c`.`id` OR (`p`.`parent`=0 AND `c`.`id`=`p`.`id`)
    											  WHERE `c`.`parent`=`$catBrowse[id]` AND `c`.`userid`=0 
    											  GROUP BY `c`.`id` 
    											  ORDER BY `c`.`theorder`, `c`.`name`") or die(mysql_error());
    while ($catBrowse1=mysql_fetch_array($getCats1))
    {
    .............
    }
     
     
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    je reve!!!!

    ca me parait évident tout d'un coup

    merci énormément !

    je check ca.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    bon grace a vous cela ne me donne plus cette erreur merci encore!

    voila ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    if ($par ==  $catBrowse[id] || $_REQUEST['parent']==$catBrowse['id'] || $_GET['category'] == $catBrowse['id']){
                          $getCats1 = mysql_query("SELECT `c`.`id`, `c`.`name`, `c`.`parent`, `c`.`items_counter`, `c`.`hover_title`, 
    											  COUNT(`p`.`id`) AS `nbsubcats` 
    											  FROM `fotos_categories` AS `c` 
    											  LEFT JOIN `fotos_categories` AS `p` ON `p`.`parent`=`c`.`id` OR (`p`.`parent`=0 AND `c`.`id`=`p`.`id`)
    											  WHERE `c`.`parent`=`$catBrowse[id]` AND `c`.`userid`=0 
    											  GROUP BY `c`.`id` 
    											  ORDER BY `c`.`theorder`, `c`.`name`") or die(mysql_error());
                         while ($catBrowse1=mysql_fetch_array($getCats1))
                         {
                           ##$nbSubCats = getSqlNumber("SELECT id FROM fotos_categories WHERE parent='".$catBrowse['id']."'");
     
                           if ($catBrowse1['nbsubcats']>0) $catLink1=$path.processLink('categories', array('category' => $c_lang[$catBrowse1['id']], 'parent' => $catBrowse1['id']));
                           else $catLink1=$path.processLink('categories', array('category' => $c_lang[$catBrowse1['id']], 'parent' => $catBrowse1['id']));
    					   }
    maintenant j'ai un nouveau problème

    puisqu'une erreur est renvoyé quand je clique sur une catégorie et que les sous catégories devraient s'afficher : Unknown column '215' in 'where clause'

    normal puisque 215 n'est pas une colonne
    c'est la ID dans la colonne ID de la categorie principale
    et c'est donc aussi la valeur dans la colonne parent pour la sous catégorie


    vous l'aurez compris je n'ai pas pondu ce code et en suis totalement incapable
    vous sauriez ce qui cloche dans ma where clause??

    lelandais1

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    y aurait vraiment personne pour me donner un petit coup de pouce supplémentaire?


  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 21
    Points : 10
    Points
    10
    Par défaut
    j'ai changé le titre puisque le problème n'est plus le même...

    le code reste le même par contre, mais je ne sais pas si cela vous suffit pour y comprendre quelque chose.

    en fait quand un click sur une catégorie, les sous catégorie sont censés apparaitre juste en dessous et pour l'instant ca ne marche pas

    je remet la partie du code complète censé faire apparaitre ces sous catégories au cas ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    if ($_GET['parent']){
                          $c_id = $_GET['parent'];
                        } elseif ($_GET['category']){
                          $c_id = $_GET['category'];
                        }
                        $r1 = mysql_query("select parent from fotos_categories WHERE id='.$c_id'");
                        list ($par) = mysql_fetch_array($r1);
     
                        if ($par ==  $catBrowse[id] || $_REQUEST['parent']==$catBrowse['id'] || $_GET['category'] == $catBrowse['id']){
                          $getCats1 = mysql_query("select c.id, c.name, c.parent, c.items_counter, c.hover_title, count(p.id) AS nbsubcats from
                           fotos_categories as c left join fotos_categories as p on
                           p.parent=c.id or (p.parent=0 and c.id=p.id) where c.parent=$catBrowse[id] and c.userid=0 GROUP BY c.id ORDER BY c.theorder, c.name") or die(mysql_error());
     
                         while ($catBrowse1=mysql_fetch_array($getCats1)) {
                           ##$nbSubCats = getSqlNumber("SELECT id FROM fotos_categories WHERE parent='".$catBrowse['id']."'");
     
                           if ($catBrowse1['nbsubcats']>0) $catLink1=$path.processLink('categories', array('category' => $c_lang[$catBrowse1['id']], 'parent' => $catBrowse1['id']));
                           else $catLink1=$path.processLink('categories', array('category' => $c_lang[$catBrowse1['id']], 'parent' => $catBrowse1['id']));
                           }
    					   ?>
                         &nbsp;
                          <img src="themes/<?=$setts['My_theme'];?>/img/arrow.gif" hspace="3" align="absmiddle" style="margin: 5px;">
     
                          <a href="<?=$catLink1;?>" <? echo ($catBrowse1['hover_title']!="") ? "title=\"".$catBrowse1['hover_title']."\"":""; ?>><? echo $c_lang[$catBrowse1['id']];?>
                             <? if (eregi('Y', $setts['enable_cat_counters'])) echo ($catBrowse1['items_counter']!=0) ? "(<strong>".$catBrowse1['items_counter']."</strong>)":"(".$catBrowse1['items_counter'].")";?>
    pour l'instant la situation a un peu évolué sur les 3 sous catégories actuelles qui devraient apparaitre seulement : >> () apparait?
    a la place de () le nom devrait apparaitre et a coté le nombre d'items dans la sous catégorie normalement.

    enfin bon bin voila j'ai tout dit...si une âme charitable qui a un peu de temps passe par la, bah ca me rendra vraiment service

Discussions similaires

  1. Sous-états qui n'apparaissent pas
    Par Miss Ti dans le forum IHM
    Réponses: 0
    Dernier message: 05/02/2008, 09h52
  2. Images qui n'apparaissent pas
    Par portu dans le forum Word
    Réponses: 5
    Dernier message: 11/04/2007, 19h15
  3. Macro sous VBE qui ne marche pas
    Par etudiant en hydro dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/03/2007, 17h28
  4. Images qui n'apparaissent pas
    Par lhpp dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 14/02/2007, 10h58
  5. Animations Flash qui n'apparaissent pas !
    Par Ed777 dans le forum Flash
    Réponses: 3
    Dernier message: 04/10/2006, 16h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo