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

Langage PHP Discussion :

Affichage des sous-catégories


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 15
    Points
    15
    Par défaut Affichage des sous-catégories
    Bonjour,

    j'ai une table qui s'appelle 'ann_categories' de cette format là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "(`id_cat`, `parent`, `category`, `msg`, `speech`, `order`, `publi`, preq`)"
    Le contenu de la base de donnée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    (1, 0, 'Auto Moto & Bateau', '', '', 1, '1', '0'),
    (2, 1, 'Auto', '', '', 1, '1', '0'),
    (3, 1, 'Moto', '', '', 2, '1', '0'),
    (4, 0, 'Immobilier, vente location', '', '', 2, '1', '0'),
    (5, 4, 'Immobilier neuf', '', '', 2, '1', '0'),
    (6, 4, 'Immobilier professionnel', '', '', 3, '1', '0'),
    (7, 4, 'Immobilier, vente location', '', '', 4, '1', '0'),
    Donc ce que je veux avoir au juste c'est que lorquon est dans une catégorie mère, je souhaiterais afficher les sous catégories, merci de votre attention.
    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
     
    function catSelect($id){
    	$tab_rub=$GLOBALS["tab_rub"];
    	$catId=$cat["id_cat"];
    $q="SELECT * FROM ann_categories WHERE parent=0 and publi=1";
    $res=DBquery($q,0);
    $cnt=count($res);
     
    if(is_array($res)){
    $out="<select name=\"catId\">";
    $out.="<option value=\"0\">All ads</option>\n";
    	foreach($res as $cat)
    	{
    		$catId=$cat["id_cat"];
    		$catUrl=urlize($cat["category"]);
    		$catName=$cat["category"];
    		$sel=$id==$catId?"selected":"";
    		$out.="<option value=\"$catId\" $sel>$catName</option>\n";
     
    	}
    	$out.="</select>";
    }
    return $out;
    }

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    dans ta premiere boucle, tu dois ajouter une 2ieme requete SQL qui va chercher et boucler avec dedans WHERE parent = '$id_parent'

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    J'ai ajouté une requête pour appeler les sous-catégories dans la boucle, mais je ne vois pas comment définir le résultat de la requête, si tu peux me montrer comment, merci.

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    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
    <?php
    echo "<ul>";
    $sql = "SELECT * FROM ann_categories WHERE parent = '0' AND publi = '1'";
    $q = mysql_query($sql); // Requete principale : CATEGORIES
    if (mysql_num_rows($q) > 0) {
         while ($r = mysql_fetch_assoc($q)) {
              // $r est un tableau contenant toutes les informations d'une catégorie (et on boucle sur toutes les catégories)
              echo "<li>".$r['cat'];
              $sql2 = "SELECT * FROM ann_categories WHERE parent = '".$r['id_cat']."' AND public = '1'";
              $q2 = mysql_query($sql2); // Requete secondaire : SOUS-CATEGORIES
              if (mysql_num_rows($q2) > 0) {
                   echo "<ul>";
                   while ($r2 = mysql_fetch_assoc($q2)) {
                        // Affichage des sous-catégories
                        echo "<li>".$r2['category']."</li>";
                   }
                   echo "</ul>";
              }
              echo "</li>";
         }
    }
    echo "</ul>";
    ?>

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    J'ai essayé d'implementer les lignes dans cette fuctions, mais ça me retourne une liste vide, vous pouvez voir d'ou ça provient s'il vous plaît.

    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
    function catSelect($id){
    	$tab_rub=$GLOBALS["tab_rub"];
    	$catId=$cat["id_cat"];
    	$q="SELECT * FROM ann_categories WHERE parent = '0' AND publi = '1'";
    	$res=DBquery($q,0); // Requete principale : CATEGORIES
    	$out="<select name=\"catId\">";
    	$out.="<option value=\"0\">All ads</option>\n";
    	if (mysql_num_rows($res) > 0) {
    		while ($r = mysql_fetch_assoc($res)) {
    			$catId=$cat["id_cat"];
    			$catUrl=urlize($cat["category"]);
    			$sel=$id==$catId?"selected":"";
    			$out.="<option value=\"$catId\" $sel>.$r\['cat'\].</option>\n";
    			$sql2 = "SELECT * FROM ann_categories WHERE parent = '".$r['id_cat']."' AND public = '1'";
    			$q2 = DBquery($sql2,0); // Requete secondaire : SOUS-CATEGORIES
    			if (mysql_num_rows($q2) > 0) {
    				while ($r2 = mysql_fetch_assoc($q2)) {
    					// Affichage des sous-catégories
    					$out.="<option value=\"$catId\" $sel>.$r2\['category'\].</option>\n";
    				}
    				$out.="</select>";
    			}
    			return $out;
    		}
    	}
    }

  6. #6
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    as-tu au moins testé mon code ? -_-

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if( non, tu n as pas testé ) {
         'test dabord de lire les réponses quon te donne'
    } elseif( oui tu as testé ) {
         'es-tu certain daccéder aux bonnes valeurs de tes variables dans ta fonction ?'
    }

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    En testant ton code, j'ai reçu ce message d'erreur:
    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\xampp\htdocs\12.php on line 23

  8. #8
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    et du coup t'abandonne et sans rien dire ? bah écoute, j'pourrais faire pareil...

    j'me suis pas amusé à copier ta DB pas que ça à faire, néanmoins ces informations étaient pertinentes et je les ai utilisées pour construire le code que tu demandais... malgré tout, c'est un code "théorique" je veux dire par là qu'il n'a pas été testé, je vais même t'avouer que je ne l'ai pas relu...

    donc dans ces cas-là, tu fais un debuggage habituel : tu ajoutes des mysql_error() et tu regardes ce qui va pas....
    Pour ce qui est de mon code, c'est une structure de base... merci d'utiliser l'aide qu'on donne et pas tout nier en bloque, sinon je m'embête plus à répondre .

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 15
    Points
    15
    Par défaut
    Oui c'est bon, sauf qu'il y'a eu un 'c' de plus dans 'publi' sur la deuxième requête et cat dans le premier echo que j'ai dû le renomer pour 'category', je vous remercie.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PrestaShop] SEO : affichage des sous-catégories
    Par sami_c dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 04/06/2013, 17h45
  2. Réponses: 3
    Dernier message: 09/10/2009, 19h14
  3. Contrôler l'affichage des sous-états
    Par Noline dans le forum Access
    Réponses: 1
    Dernier message: 31/07/2006, 19h14
  4. affichage des sous-formulaires
    Par hkiko abdelhaq dans le forum Access
    Réponses: 2
    Dernier message: 18/04/2006, 13h23

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