begin process at 2012 05 28 13:26:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

afficher des pages php issues d'une aborescence


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales