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 :

Afficher dans un menu la liste des forums d'une catégorie [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Afficher dans un menu la liste des forums d'une catégorie
    Bonjour,
    je ne m'y connais pas beaucoup dans le php,
    c'est pourquoi j'aimerai avoir un peu d'aide:
    Je souhaite retrouver dans le menu de mon forum la liste des noms de forums qui se trouvent dans une catégorie bien précise et donc bien entendu si je modifie le contenu de cette catégorie, la liste dans mon menu changerai automatiquement.
    lien du forum: http://forum.advictoriam.org/index.php

    pour être plus exact, c'est la liste des jeux qui se trouve dans la catégorie "jeux de la communauté" que je souhaite intégrer dans "Forum" dans mon menu en haut de la page.

    Pour le moment la liste a été intégré en html comme ceci:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <li><a class="separator" href="/index.php">FORUM</a><ul>
    	<li><a href="/viewforum.php?f=30"><img src="/styles/home/theme/images/menu_adv/icone_jeux/aion_1.png" class="imgmenuadv" alt=""/>Aion</a></li>
    	<li><a href="/viewforum.php?f=314"><img src="/styles/home/theme/images/menu_adv/icone_jeux/bf3_1.png" class="imgmenuadv" alt=""/>Battlefied 4</a></li>
    	<li><a href="/viewforum.php?f=18"><img src="/styles/home/theme/images/menu_adv/icone_jeux/final_fantasy_14_1.png" class="imgmenuadv" alt=""/>Final Fantasy XIV online</a></li>
    	<li><a href="/viewforum.php?f=26"><img src="/styles/home/theme/images/menu_adv/icone_jeux/gw2_2.png" class="imgmenuadv" alt=""/>Guild Wars 2</a></li>
    	<li><a href="/viewforum.php?f=409"><img src="/styles/home/theme/images/menu_adv/icone_jeux/lol_1.png" class="imgmenuadv" alt=""/>League Of Legends</a></li>
    	<li><a href="/viewforum.php?f=327"><img src="/styles/home/theme/images/menu_adv/icone_jeux/minecraft_1.png" class="imgmenuadv" alt=""/>Minecraft</a></li>
    	<li><a href="/viewforum.php?f=20"><img src="/styles/home/theme/images/menu_adv/icone_jeux/shaiya_1.png" class="imgmenuadv" alt=""/>Shaiya</a></li>
    	<li><a href="/viewforum.php?f=28"><img src="/styles/home/theme/images/menu_adv/icone_jeux/swtor.png" class="imgmenuadv" alt=""/>SWTOR</a></li>
    	<li><a href="/viewforum.php?f=21"><img src="/styles/home/theme/images/menu_adv/icone_jeux/tera_1.png" class="imgmenuadv" alt=""/>Tera</a></li>
    	<li><a href="/viewforum.php?f=22"><img src="/styles/home/theme/images/menu_adv/icone_jeux/the_elder_scrolls_1.png" class="imgmenuadv" alt=""/>The Elder Scrolls Online</a></li>
    	<li><a href="/viewforum.php?f=268"><img src="/styles/home/theme/images/menu_adv/icone_jeux/wars_of_thunder.png" class="imgmenuadv" alt=""/>War Thunder</a></li>
    	<li><a href="/viewforum.php?f=227"><img src="/styles/home/theme/images/menu_adv/icone_jeux/world_of_tank_1.png" class="imgmenuadv" alt=""/>World Of Tanks</a></li>
    	<li><a href="/viewforum.php?f=24"><img src="/styles/home/theme/images/menu_adv/icone_jeux/world_of_warcraft_1.png" class="imgmenuadv" alt=""/>World Of Warcraft</a></li>
    </ul></li>


    Mon problème c'est surtout que la liste ne change pas en fonction du contenu de la catégorie "jeux de la communauté"

    je pense qu'il faut faire appel à la base de donnée donc je suis en MySQL
    le FORUM_ID de cette catégorie est 17, je pense qu'on peut faire quelque chose soit par rapport à l'ID soit par rapport au FORUM_NAME, mais je ne sais pas le coder.

    Merci pour votre aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Bonsoir,

    Il faudrait récupérer la liste des forums avant d'afficher ton menu. Donc tu effectue une requête SQL SELECT sur l'ID de ton forum à priori via php puis pour chaque ligne récupérée tu affiches un élément li dans la liste de tes forums. Si pour toi c'est du charabia je t'invite à consulter les nombreux tutos sur le net concernant PHP/MySQL d'autant plus que ce que tu souhaites faire est la base tu n'auras pas de mal à trouver (sur ce site ou ailleurs).

    Tes forums seront synchronisés avec la BDD mais seulement au chargement de la page, ce qui veut dire que si un changement opère et que tu n'as pas recharger la page, la modif ne sera pas affiché. A voir si cela te pose problème et dans ce cas la il faudra opter pour une autre technologie.

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    J'ai vu plusieurs tutos donc c'est quand même un peu plus clair pour comprendre le principe, mais je ne vois pas comment faire pour récupérer la liste des forums de cette catégorie.
    J'essaye quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = 'SELECT forum_name
    FROM ' . phpbb_forums . '
    WHERE forum_id = 17
    ORDER BY forum_name ASC';
    je ne sais pas si je fais des fautes aussi vu que je n'ai pas encore réellement codé en php,
    mais là si ça marche, je ferais appel uniquement au nom de ma catégorie et pas de la liste des forums qui sont sous elle.
    Et si je fais appel au forum_name de chaque forums qu'il y a sous cette catégorie;
    par exemple je décide de changer d'emplacement un des forums que ma catégorie compose pour le mettre dans une autre catégorie,
    ce forum apparaîtra toujours dans mon menu, chose que je ne veux pas.

    Du coup ben je suis un peu perdu: je ne sais pas trop comment le coder.

  4. #4
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Je ne connais pas la structure de ta BDD donc difficile de t'aider. Donc si tu veux récupérer les catégories enfant de la catégorie d'ID 17, il faudrait faire une jointure à priori. Comment gères tu le fait qu'une catégorie soit une sous-catégorie ou une catégorie parente ?

    Pour les erreurs de syntaxe, phpbb_forums est une variable ? N'as tu pas oublié le $, pour appeler une variable : $phpbb_forums

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    pour ma base de donnée, j'utilise phpmyadmin.
    j'ai vu la phrase SELECT * FROM `phpbb_forums` ORDER BY `forum_name` ASC sur ma page du phpmyadmin donc c'est par rapport à ça que j'ai récupéré phpbb_forums.
    Nom : phpbb.jpg
Affichages : 163
Taille : 18,0 Ko

    Sinon effectivement j'ai, dans ma base de donnée, parent_id:
    Nom : bdd.jpg
Affichages : 119
Taille : 94,9 Ko

    Et on voit bien que si parent_id est 17, ça équivaut à ma catégorie jeux de la communauté.

    Peut être qu'on pourrait appeler le parent_id 17,
    et ensuite l'afficher dans le menu?

  6. #6
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Oui Ta requête serait alors éventuellement quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql = "SELECT forum_name
    FROM phpbb_forums
    WHERE parent_id = 17
    ORDER BY forum_name ASC";

  7. #7
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    le problème du coup c'est pour afficher le contenu:
    si je fais:

    echo $sql;

    ça me met le texte SELECT forum_name FROM phpbb_forums WHERE parent_id = 17 ORDER BY forum_name ASC en toute lettre sur la page.

    Je pense que ça doit être plus compliqué que ça, comment je pourrais afficher le contenu autrement?

  8. #8
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Oula effectivement ça ne se fait pas comme ça je pensais que tu comprenais qu'il fallait exécuter cette requête pour obtenir les résultats ... la apparemment tu pars de 0 il faut que tu commences par la base je ne peux pas tout expliquer, renseigne toi sur les cours PHP/MySQL pour interroger la BDD car tu ne peux pas t'en sortir comme ça en bidouillant à droite à gauche : http://php.developpez.com/cours/

  9. #9
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    ok merci, je vais voir ça.
    Merci pour l'aide en tout cas c'est super sympa.

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    pour interroger une bdd MySQL, le mieux est de le faire en pdo ; comme je me suis mis il y a peu à pdo, je me suis fait un aide-mémoire (je partais des fonctions MySQL_xxx) :
    Code php : 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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    <?php
    //// connexion
    include 'MyPdo.php';
    try{
    				$bdd = new MyPDO();
    			}
    catch(PDOException $e){
    				echo "argggggggggggggg".$e->getMessage();
    			}
     
    // MyPDO
     //la classe MyPdo hérite de la classe PDO (extends)
    class MyPdo extends PDO {
    /* on privilégie les var de classe (statiques) aux constantes : ainsi modifiables par programme (cf traitrequete.php) */
    	static public $DB_NAME = "xxx";
     
    	static public $HOST = "xxx";
     
    	static public $USER = "xxx";
     
    	static public $PASS = "xxx";
     
     
     
    // le constructeur de MyPdo appelle le constructeur de PDO en lui passant ses paramètres	
    	function __construct() {
    	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    	$pdo_options[PDO::ATTR_EMULATE_PREPARES] = false;//important sur les configs récentes
    	$pdo_options[PDO::ATTR_DEFAULT_FETCH_MODE] = PDO::FETCH_OBJ;//pour le mode objet
    	$pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";//pour l'utf-8
     
    	parent::__construct('mysql:host=' . MyPdo::$HOST . ';dbname=' . MyPdo::$DB_NAME, MyPdo::$USER, MyPdo::$PASS, $pdo_options);
    		//parent::__construct('mysql:host=' . MyPdo::$HOST . ';dbname=' . MyPdo::$DB_NAME, MyPdo::$USER, MyPdo::$PASS);
    	}
     
    }
    // fin MyPDO
     
     
    //// Effectuer une query et un fetch
    $query = 'SELECT * FROM foo WHERE bar=1;';
    $arr = $pdo->query($query)->fetch(); //Sur une même ligne ...
     
     
    //// Effectuer une query et un fetchAll
    $query = 'SELECT * FROM foo WHERE bar<10;';
    $stmt = $pdo->query($query);
    $arrAll = $stmt->fetchAll(); //... ou sur 2 lignes
     
    //// Effectuer un exec
    $query = 'DELETE FROM foo WHERE bar<10;';
    $rowCount = $pdo->exec($query);
     
    //// nb de lignes (mysql_num_rows)
    $query = 'DELETE FROM foo WHERE bar<10;';
    $rowCount = $pdo->exec($query);
    $nb_lignes=$rowCount->rowCount();
     
    //nb lignes pour un select
    $query = 'SELECT * FROM foo WHERE bar<10;';
    $nb=0;
    $qid = $bdd->prepare($query);
    $qid->execute();
    while( $ligne=$qid->fetch() ) $nb++;
     
    ou
     
    $query_init_nonprep = "SELECT COUNT(*) AS compte FROM foo WHERE bar<10;";
    $qid = $bdd->prepare($query);
    $qid->execute();
    $ligne=$qid->fetch(PDO::FETCH_OBJ);
    echo "nblignes=".$ligne->compte;
     
    // exécuter un select puis afficher les lignes
    $sql='select * from `conf` order by lastname';
    $qid = $bdd->prepare($sql);
    $qid->execute();
    while( $ligne=$qid->fetch(PDO::FETCH_OBJ) ) {
    	echo "mame :".$ligne->name."  id :".$ligne->id."<br/>";
    }
    ?>

  11. #11
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Février 2015
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    C'est bon j'ai réussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql='SELECT forum_name FROM phpbb_forums WHERE parent_id = 17 ORDER BY forum_name ASC';
    $qid = $bdd->prepare($sql);
    $qid->execute();
    while( $ligne=$qid->fetch(PDO::FETCH_OBJ) ) {
    	echo "".$ligne->forum_name."<br/>";
    }

    Merci à vous 2, et super ton aide-mémoire laurentSc

  12. #12
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 831
    Points
    5 831
    Billets dans le blog
    1
    Par défaut
    les puristes (dont je ne fais pas partie) diraient que là, pas besoin de requête préparée et qu'on pourrait faire :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $sql='SELECT forum_name FROM phpbb_forums WHERE parent_id = 17 ORDER BY forum_name ASC';
    $qid = $bdd->query($sql);
    while( $ligne=$qid->fetch(PDO::FETCH_OBJ) ) {
    	echo "".$ligne->forum_name."<br/>";
    }

    Content que cet aide-mémoire rende service

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

Discussions similaires

  1. Macro afficher dans un menu des variables
    Par Manhuuu dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/06/2010, 20h54
  2. Paramétrer la liste des forums affichés, possible ?
    Par Yorick dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 27/04/2010, 09h34
  3. [MySQL] Résultat d'une requette dans un menu en liste
    Par Mimisator dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/10/2005, 20h55

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