Accueil > Forum > > > > afficher des pages php issues d'une aborescence
afficher des pages php issues d'une aborescence
jeudi 22 juillet 2010 à 20:19:27 |
afficher des pages php issues d'une aborescence

patingfree
|
Bonjour à tous,
Je suis nouveau concernant la programmation en php et je voudrais solliciter votre aide.
Je travaille sur une application web dans laquelle je dois afficher dynamiquement un menu en arborescence de pages php stockées dans une base de données.J'ai utilisé la methode des feuilles filles et parents en stockant les identifiants des pages ainsi que ceux de leurs parents de sorte à afficher le menu.
les attributs de ma table page sont:id,nom,contenu (text),parent_id.Lorsque le contenu de la page est entierement en html je peux directement saisir le code dans la colonne contenu de ma base de données mais lorsqu'il s'agit de php le navigateur execute seulement le html et affiche le php sans l'exécuter.Mon problème est le suivant:comment exécuter des mas pages php dans ce cas là.
merci d'avance pour vos idées.
|
|
vendredi 23 juillet 2010 à 07:14:41 |
Re : afficher des pages php issues d'une aborescence

pysco68
|
Bonjour,
PHP n'est pas exécute dans le navigateur. C'est un langage serveur, ce qui veut dire qu'il te faut un serveur (par exemple Apache avec PHP etc... ca existe en packs tout fait avec rien à configurer, type: XAMPP) capable d'exécuter le code PHP pour te générer le code HTML que le navigateur peux interpréter.
Si j'ai répondu à côté de la plaque j'ai mal compris ton problème ;)
Cordialement,
- Pysco68
|
|
vendredi 23 juillet 2010 à 10:39:13 |
Re : afficher des pages php issues d'une aborescence

patingfree
|
Bonjour ,
Merci pour la reponse mais je l'ai peut être mal posé.Mon but est d'afficher dynamiquement un menu arborescent vertical de pages php incluant des sous menus toutes filles de la page index.php et dont les adresses sont stockées dans une base de données.ma première tentative m'a permis d'afficher le menu arborescent selon les identifiants des pages et ceux des pages filles.ce qui resouds mon problème à moitié car les pages s'affichent en fonction de leur identifiants et moi je voudrais qu'elles s'affichent selon leurs adresses car elles sont stockées physiquement sur le serveur et je n'en ai pas accès.voici le code me permettant d'afficher le menu selon les identifiants mais qui ne resouds pas mon problème:
Je dispose de 2 pages php.1 pour mes fonctions et 1 autre pour la page d'acccueil:index.php.
code de mes fonction.php
<?php
// --------------------------------------------------------------------------------------------------------------------------
// Se connecte à la DB
// Paramètres : nom de la base -> $name_DB
function connexion_DB($name_DB) {
// Déclaration des paramètres de connexion
$host = "127.0.0.1";
$user = "root";
$bdd = $name_DB;
$passwd = "";
// Connexion au serveur
mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
}
// --------------------------------------------------------------------------------------------------------------------------
// Deconnection de la DB
function deconnexion_DB() {
mysql_close();
}
// --------------------------------------------------------------------------------------------------------------------------
// Exécute une requète SQL. Si la requête ne passe pas, renvoie le message d'erreur MySQL
// Paramètres : chaine SQL -> $sql
// Renvoie : enregistrements correspondants -> $req
function executer($sql) {
$req = mysql_query($sql);
if (!$req) {
$message = 'Erreur SQL : ' . mysql_error() . "<br>\n";
$message .= 'SQL string : ' . $sql . "<br>\n";
$message .= "Merci d'envoyer ce message au webmaster";
die($message);
}
return $req;
}
// --------------------------------------------------------------------------------------------------------------------------
// Récupère les informations de la page concernée
function extraction_infos_DB() {
$sql = 'SELECT * FROM `page` WHERE `id` = '.$_ENV['id'];
$result = executer($sql);
$ligne = mysql_fetch_array($result);
$_ENV['nom'] = $ligne['nom'];
$_ENV['contenu'] = $ligne['contenu'];
$_ENV['parent_id'] = $ligne['parent_id'];
}
// --------------------------------------------------------------------------------------------------------------------------
// Affiche le chemin de fer.
// Paramètres : id de la page en cours -> $idpage
// Renvoie : chemin complet -> $chemin_complet
function affiche_chemin_fer($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
$sql = 'SELECT `nom`, `parent_id` FROM `page` WHERE `id` = '.$idpage;
$result = executer($sql);
$ligne = mysql_fetch_array($result);
$nompage = $ligne['nom'];
$idparent = $ligne['parent_id'];
// création du lien vers la page en cours
$chemin_page_en_cours = ' -> <a href="index.php?id='.$idpage.'">'.$nompage.'</a>';
// Concaténation du lien de la page N-1 et
// du lien de la page en cours
$chemin_complet = affiche_chemin_fer($idparent).$chemin_page_en_cours;
}
// renvoie le chemin complet
return $chemin_complet;
}
// --------------------------------------------------------------------------------------------------------------------------
// Affiche le menu.
// Paramètres : id de la page -> $idpage
// (id de la page en cours pour le menu de gauche, id de la page racine (1) pour le menu du haut)
// Renvoie : le menu sous forme de liste -> $menu_retour
function affiche_menu($idpage) {
// Sélectionne toutes les pages filles de la page en cours
$sql = 'SELECT `id`, `nom`, FROM `page` WHERE `parent_id` = '.$idpage;
$result = executer($sql);
// Si la page n'a pas de page fille, alors on modifie la requète pour obtenir ses pages soeurs.
if (mysql_num_rows($result) == 0) {
$sql = 'SELECT `id`, `nom` FROM `page` WHERE `parent_id` = '.$_ENV['parent_id'];
$result = executer($sql);
}
$menu_retour = '<ul>';
while ($ligne = mysql_fetch_array($result)) {
$menu_retour .= '<li>';
$menu_retour .= '<a href="index.php?id='.$ligne['id'].'">';
$menu_retour .= $ligne['nom'];
$menu_retour .= '</a>';
$menu_retour .= '</li>';
}
$menu_retour .= '</ul>';
return $menu_retour;
}
?>
code de ma page index.php
<?php
// Active tout les warning. Utile en phase de développement
// En phase de production, remplacer E_ALL par 0
error_reporting(E_ALL);
// Inclus le fichier contenant les fonctions personalisées
include_once 'mes_fonctions.php';
// Fonction de connexion à la base de données
connexion_DB('gest');
// Définit l'Id de la page d'accueil (1 dans cet exemple)
// Pensez à le modifier si ce n'est pas le cas chez vous.
$id_accueil = 1;
// Récupère l'id de la page courante passée par l'URL
// Si non défini, on considère que la page est la page d'accueil
if (isset($_GET['id'])) {
$_ENV['id'] = intval($_GET['id']);
} else {
$_ENV['id'] = $id_accueil;
}
// Extrait les informations correspondantes à la page en cours de la DB
extraction_infos_DB();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- Insère le nom extrait de la DB dans la balise correspondante -->
<title><?php echo $_ENV['nom']; ?></title>
<link rel="stylesheet" type="text/css" href="styles.css">
</head>
<body>
<div id="chemin_fer">
<?php
// Affiche le chemin de fer
echo 'Vous êtes ici : '.affiche_chemin_fer($_ENV['id']);
?>
</div>
<div id="bloc_central">
<div id="menu_vertical">
<?php
// Affiche le menu en cours => id de la page = id de la page en cours.
echo affiche_menu($_ENV['id']);
?>
</div>
<div id="contenu">
<?php
// Affiche le contenu de la page en cours
echo $_ENV['contenu'];
?>
</div>
</div>
<div id="pied_page">
<?php include("pied_page.html"); ?>
</div>
<?php deconnexion_DB(); ?>
</body>
</html>
en espérant avoir été plus explicite.
Merci d'avance
|
|
vendredi 23 juillet 2010 à 11:51:52 |
Re : afficher des pages php issues d'une aborescence

VisualBoy
|
J'ai une question (surement tres bete) :
En faite, tu dis avoir 2 pages .php : une page de fonction et une page index. C'est juste une impression mais je vois que tu utilises tes fonctions dans index.php et je vois nulle part de reference a celle-ci.
As-tu essaye de creer une classe regroupant tes fonctions ? puis d'inserer la ligne dans ta page index :
<?php
include(Fonctions.class.php);
$maclasse = New MaClasse;
$maclasse->affiche_menu($_ENV['id']);
?>
|
|
vendredi 23 juillet 2010 à 12:44:38 |
Re : afficher des pages php issues d'une aborescence

patingfree
|
Bonjour,
Je pose mal mon problème? excusez moi!je suis nouveau en developpement web et php.Le code ci_dessous m'a permis d'afficher mon menu arborescent suivant ce schéma:
ANIMAUX
Reptils
serpents
crocodile
Batraciens
grenouille
crapaud
Dans le dossier ANIMAUX de mon site,j'ai 2 sous dossiers Reptils et Batraciens
dans lesquels se trouvent 2 pages php chacunes(serpents et crocodile pour le 1er,grenouille et crapaud pour le second).Dans mon menu arborescent,lorsque je click sur la page parent reptil par exemple les pages filles serpents et crocodile s'affichent et l'url affiche l'id de la page et je voudrais plutôt que ce soit l'adresse de la page stockée dans la base de données et présente physiquement dans le dossier Reptils sur mon serveur.
Merci pour votre aide et votre indulgence.
|
|
vendredi 23 juillet 2010 à 13:14:36 |
Re : afficher des pages php issues d'une aborescence

VisualBoy
|
Donc, si j'ai bien compris  , il seulement que tu modifies le lien dans tes balises <a></a>:
Essaie de remplacer :
$menu_retour .= '<a href="index.php?id='.$ligne['id'].'">';
Par :
$menu_retour .= '<a href="http://www.tonsite.fr/animaux/reptils/page.php">';
En prenant bien soin de renommer tes dossiers en lettres miniscules.
Try and enjoy 
|
|
Cette discussion est classée dans : php, afficher, pages, contenu, issues
Répondre à ce message
Sujets en rapport avec ce message
afficher contenu d'un repertoire [ par michel_07 ]
Bonjour; j'ai une frame qui contient une partie sommaire(page1.php) et une autre principale(page2.php) pour l'affichage.mon probleme c'est que comm
Charger différentes pages à interval de temps [ par wadpap13 ]
Bonjour à tous !!! Je vous explique mon problème : j'ai un jeu avec des scores, et je veux que tous les jours à minuit ma page jeu change en actualisa
PHP et BBCODE [ par TheGorgo ]
Bonjour à tous, Je cherche a créer un script pour mon forum, http://conteslegendes.free.frum (un pe de pub au passage). Le but de ce script est de po
Compatibilité PHP/HTML [ par Antosz ]
J'ai créer toute mes pages en HTML + le CSS, j'ai ma bannière et le menu sur chaque page mais j'ai laissé le "corps" vide pour y ajouter des modules (
Conseils pour PSEUDO - FRAMES [ par jonathanrocchio ]
Bonjour,Je dois finir pour lundi la mise en place de la structure d'un site Internet.Toutes mes pages sont pretes (formulaire inscription, login, cont
Mettre en hyperlien le contenu d'un echo ? [ par Nicolas_R ]
Yoo all !Voilà que je m'attaque à PHP, mais ce n'est pas pour autant que je gagne ... Peut-être une âme charitable sur ce vivant forum saurait-elle m'
Probleme de copteur (pour changer) [ par darkwhite ]
Salut à tous, Comme tout débutant en php je veux faire un compteur de visites pour mon site (le plus simple possible meme si c'est pas tres fiable). j
FckEditor pour administrer des pages [ par mitch621 ]
Hello,Je suis en face d'un problème depuis plusieurs jours :Je voudrais utiliser fckeditor pour modifier le contenu redactionnel de certaines pages d'
Affichage limité du contenu d'un champ MySQL [ par akiedispowa ]
Bonjour, Je m'occupe actuellement d'afficher des news enregistré en bdd, mais l'affichage doit être que partiel, c'est à dire que dans chaques champs
Mise en page et liens pour site en PHP [ par fmd92 ]
BonjourJ'essaie de faire un site personnel en PHP, et je galère vraiment beaucoup. C'est vrai que je n'ai que très peu de connaissances en PHP.J'en ap
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : GOOGLE MAPRE : GOOGLE MAP par inwebo
Cliquez pour lire la suite par inwebo GOOGLE MAPGOOGLE MAP par fatmanajjar
Cliquez pour lire la suite par fatmanajjar
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|