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

Contribuez / Téléchargez Sources et Outils PHP Discussion :

Créer un


Sujet :

Contribuez / Téléchargez Sources et Outils PHP

  1. #1
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut Créer un
    Bonjour,

    Je vous propose un nouvel élément à utiliser : Créer un "chemin de fer" (suite de lien donnant la position dans l'arborescence d'un site)

    Supposons d'abord que vous avez une base de donnée avec une table pour vos pages (nommons la PAGES, parfaitement au hasard). Supposons ensuite que dans cette table, vous avez un champ Id_page (identifiant de la page en cours, un auto increment fera très bien l'affaire), un autre appelé Id_parent (l'ID de la page parent, le N+1 dans l'organigramme), et un champ Titre (contenant le titre de votre page).

    La seule règle imposée sera que l'Id_parent de la page racine sera 0.



    Il nous suffit d'appeler cette fonction à l'endroit indiqué comme suit :



    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $chemin_de_fer = recur_chemin($id_de_la_page_en_cours);
     
    echo $chemin_de_fer;



    Qu'en pensez-vous ?
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  2. #2
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Probleme chemin de faire
    Salut titoumimi,
    Merci tout d'abord pour ce code, je voudrai le faire fonctionner sur mon site mais la je bloque.

    Alors j'ai fait ma table (pages) avec 3 champs:
    -Id_page
    -Id_parent
    -Titre

    Je me connecte sur ma base de données avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php    
    require "config.php";
    mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
    mysql_select_db(DB_BDD);
    puis je colle ton code dans mon index:

    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
    function recur_chemin($idpage) {
    // on définit la variable pour éviter le warning
    $chemin_complet = "";
    // Si l'id de la page en cours est différent de 0
    // (0 = page parente de la page racine = inexistante)
    if ($idpage != 0) {
    // on récupère les informations de la page en cours dans la DB
    $strSQL = "SELECT * FROM pages WHERE Id_page=".$idpage;
    $resultat = requete_SQL($strSQL);
    $tabl_result = mysql_fetch_array($resultat);
     
    $titrepage = $tabl_result['titre'];
    $idparent = $tabl_result['id_parent'];
     
    // cr?ation du lien vers la page en cours
    $chemin_page_en_cours = " -> <a href=\"index.php?id_p=".$idpage."\">".$titrepage."</a>";
     
    // Concaténation du lien de la page N-1 et
    // du lien de la page en cours
    $chemin_complet = recur_chemin($idparent).$chemin_page_en_cours;
    }
    //renvoie le chemin complet
    return $chemin_complet;
    }
    ?>
    et je colle ça pour afficher le chemin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <?php
     $chemin_de_fer = recur_chemin($id_de_la_page_en_cours);
    echo $chemin_de_fer;
    mysql_close(); 
    ?>
    Alors mon problème est que rien s'affiche, faut-il configurer ton code exemple:
    Peux-tu m'aider a m'orienter sur mes erreurs?
    Merci.

  3. #3
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Je pense que, quitte à faire un tutoriel en 2011, autant ne plus "polluer"* le web avec l'utilisation des fonctions mysql_* à l'heure où, depuis PHP5, elles ne sont plus maintenues, et à laquelle nous devrions inciter les débutants à utiliser à minima mysqli_* (si ce n'est PDO).

    Actuellement et depuis la venue de PHP3 (et mysql_* en 1998 !!), il en pleut des tutoriels avec ces fonctions et, malheureusement, continuer à en produire ne fera qu'inciter les "nouveaux" ou les "habitués" à les utiliser... Pour info, PHP5 a déjà 7 ans (2004).

    Pour arguments (mais il y en a plus d'un), rien ne vaut la doc officielle : http://www.php.net/manual/fr/mysqli.overview.php (tableau en bas, par exemple)

    Par ailleurs, ce script a de bonnes failles de sécurité si l'utilisation qui en est faite et rapide et non réfléchie ($idpage en GET sans vérification avant requête par exemple). Il serait bien de rajouter la vérification à la fonction ou, à minima de prévenir d'éventuel aventurier

    A part cela, l'idée est bonne et l'algorithme est plutôt bien trouvé



    *désolé pour l'expression un peu exagérée, je trouve pas le mot que je voulais utiliser
    Je suis fervent utilisateur de PHP et de jQuery.
    Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur pour envoyer l'URL de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc…

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci Shikiryub pour cette remarque, car c'est la premier fois que j'attends parlé de mysqli, je vais donc essayer d'apprendre tout ça pour en suite l'utiliser sur mon site. C'est sympa de mettre le doigt sur les failles de sécurité car je ne l'ai détecte pas encore.

    Je suis débutant donc je ne rentrerai pas dans un débat car il est bon d'apprendre les nouveautés sur tout quand on débute et je remercie aussi toutes les personnes qui font des tutoriels pour nous car cela est mon seul moyen d'étudier le php.

Discussions similaires

  1. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 15h22
  2. Créer un interpréteur de langage inspiré du Basic
    Par Picasso dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 11/05/2002, 17h10
  3. Comment faire pour créer un bitmap
    Par GliGli dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/04/2002, 15h41
  4. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20

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