Titre de la page depend d'une requete SQL

Fredy07
Invité n'ayant pas de compte PHPfrance

25 juil. 2009, 03:17

Bonjour,

J'ai une page comme suite:

<html>
<head>
<title><?php echo $titre; ?></title>
</head>
<body>
Mes requêtes SQL
<?php
SELECT titre, texte FROM table WHERE id='$id';
</body>
</html>
Comment faire pour que le titre sélectionné dans ma requête soit le même en tête de ma page?

Merci

Eléphant du PHP | 447 Messages

25 juil. 2009, 04:33

Hello, utilisée comme ça ta requête ne sera pas très utile...

Il faut compléter ton code et le placer avant l'echo sur la $titre:
<?php
$query = mysql_query("SELECT titre, texte FROM table WHERE id='$id'");
$result = mysql_fetch_array($query);
$titre = $result['titre'];
?>
<html>
<head>
<title><?php echo $titre; ?></title>
</head>
<body> 
Probably (only a) Human Problem?

Fredy07
Invité n'ayant pas de compte PHPfrance

25 juil. 2009, 12:44

Merci Stef j'ai pense a ça, mais je cherche une méthode comme les forums, par exemple le titre de page de ce sujet est le même que j'ai écrit "Titre de la page dépend d'une requête SQL", y a t il une méthode a faire ça??

Eléphant du PHP | 199 Messages

25 juil. 2009, 13:01

Tu fais un input ou tu marques le titre.
Tu le stockes dans une base de données.
Et ensuite tu l'affiches à l'endroit ou tu veux avec les critères graphiques que tu souhaites.

Eléphant du PHP | 447 Messages

25 juil. 2009, 20:46

hi,

je ne comprends pas où tu veux l'afficher...
Probably (only a) Human Problem?

Mammouth du PHP | 991 Messages

25 juil. 2009, 23:34

Fredy , re-regarde le code donné par stef qui correspond en tout point a ta demande.

En effet le titre n'est jamais textuelle relayé par le biais de la variable.

Donc apres c'est sans doute un probleme de compréhension , dit nous ce que tu comprend pas dans le code.

Stef n'oublie pas les mysql_connect , et mysql_close.

je sens que le code donnée dans le 1er post est le script complet sans aucun appel vers d'autre script :p

Bye Hawk
DevOps, Symfony4, Hoa

Fredy07
Invité n'ayant pas de compte PHPfrance

26 juil. 2009, 00:37

J'ai bien compris le code par Stef, juste que certaines pages vont appeler au titre de leurs pages par défaut, et si je me trouve sur des pages que je dois me connecter a une base de donnée, je dois afficher le titre dans la table.
<title>
<?php echo $titre; // au cas ou je suis sur une page du type: page.php?id=id ?> 
</title>
et en cas ou je suis sur une page normale, type: page.php

Code : Tout sélectionner

<title>le titre de la page</title>

Eléphant du PHP | 447 Messages

26 juil. 2009, 10:21

Stef n'oublie pas les mysql_connect , et mysql_close.
Oui, j'ai supposé qu'à ce niveau de son code il avait déjà ouvert une connection...
quant à mysql_close...?

Fredy je suis vraiment pas sûr de comprendre ce qe tu veux.... m'enfin, si t'as une $_GET, tu peux faire:
<?php

$titre = "Valeur par défaut";

if (isset($_GET['id']) {

    $query = mysql_query('SELECT titre, texte FROM table WHERE id='.$_GET['id']);
    $result = mysql_fetch_array($query);
    $titre = $result['titre'];

}

?>

<html>
<head>
<title><?php echo $titre; ?></title>
</head>
Probably (only a) Human Problem?

Fredy07
Invité n'ayant pas de compte PHPfrance

27 juil. 2009, 07:14

Fredy je suis vraiment pas sûr de comprendre ce qe tu veux.... m'enfin, si t'as une $_GET, tu peux faire:
J'ai des pages comme ca:
<head>
<title><?php echo $titre; ?></title>
</head>

<body>
un menu haut et le centre

<?php
include 'menu.php';

include 'centre.php'; // dedans une fonction qui génère les liens suivant le menu top du genre:

if ($page == 1)
{
include 'page1.php';
$titre = 'mon titre1';
}

if ($page == 2)
{
include 'page2.php';
$titre = 'mon titre2';
}
?>
Ce que je veux faire si la page demande existe dans la liste qu'on génère on inclue la page avec son titre et si la page demande est dans la table de la base de donnée on inclue la page avec son titre stocke dans la table

Eléphant du PHP | 447 Messages

27 juil. 2009, 21:48

Ce que je veux faire si la page demande existe dans la liste qu'on génère on inclue la page avec son titre et si la page demande est dans la table de la base de donnée on inclue la page avec son titre stocke dans la table
houla, y a un truc qui n'est pas clair pour moi dans ton énnoncé: tu parles d'une liste générée... mais à partir de quoi?
ensuite tu parles d'un titre à inclure si la page est dans la table...

ça me parait confus...
Probably (only a) Human Problem?

Fredy07
Invité n'ayant pas de compte PHPfrance

28 juil. 2009, 00:46

Ce que je veux faire si la page demande existe dans la liste qu'on génère on inclue la page avec son titre et si la page demande est dans la table de la base de donnée on inclue la page avec son titre stocke dans la table
houla, y a un truc qui n'est pas clair pour moi dans ton énnoncé: tu parles d'une liste générée... mais à partir de quoi?
ensuite tu parles d'un titre à inclure si la page est dans la table...

ça me parait confus...
Le centre.php génère des pages du genre pseudo frames

Eléphant du PHP | 447 Messages

28 juil. 2009, 08:03

hello,

tu peux montrer le contenu de centre.php stp?
Probably (only a) Human Problem?

Fredy07
Invité n'ayant pas de compte PHPfrance

29 juil. 2009, 05:06

hello,

tu peux montrer le contenu de centre.php stp?
if ($page == 1)
{
include 'page1.php';
$titre = 'mon titre1';
}

if ($page == 2)
{
include 'page2.php';
$titre = 'mon titre2';
} 

Eléphant du PHP | 447 Messages

29 juil. 2009, 17:05

Tu as avais dit qu'il y a une fonction dans centre.php....

J'ai des pages comme ca:
<head>
<title><?php echo $titre; ?></title>
</head>

<body>
un menu haut et le centre

<?php
include 'menu.php';

include 'centre.php'; // dedans une fonction qui génère les liens suivant le menu top du genre:

if ($page == 1)
{
include 'page1.php';
$titre = 'mon titre1';
}

if ($page == 2)
{
include 'page2.php';
$titre = 'mon titre2';
}
?>
Ce que je veux faire si la page demande existe dans la liste qu'on génère on inclue la page avec son titre et si la page demande est dans la table de la base de donnée on inclue la page avec son titre stocke dans la table
or là, dans le code que tu montres il n'y en a pas...
hello,

tu peux montrer le contenu de centre.php stp?
if ($page == 1)
{
include 'page1.php';
$titre = 'mon titre1';
}

if ($page == 2)
{
include 'page2.php';
$titre = 'mon titre2';
} 
Je veux bien continuer à réfléchir pour t'aider à trouver une solution mais ça me parait nébuleux tout ça...

Alors je vais essayé de résumer pour mieux comprendre:

D'un coté dans ta bdd t'as des pages (ça c'est pas clair! c'est quoi une page dans ta bdd? le titre, le contenu?),
de l'autre côté dans certaines de tes pages tu as une liste de liens généré (par une fonction qui n'existe pas apparement),
bien, à partir de ça tu veux déterminer quel est le titre à insérer dans la balise <title>...

Là, moi je nage... si t'as des explications plus abordables je suis preneur! sinon ben j'espère que quelqu'un de plus compétent te viendra en aide.
Probably (only a) Human Problem?

Eléphant du PHP | 369 Messages

29 juil. 2009, 17:32

Salut,
J'ai des pages comme ca:
<head>
<title><?php echo $titre; ?></title>
</head>
<body>
un menu haut et le centre
<?php
include 'menu.php';
include 'centre.php'; // dedans une fonction qui génère les liens suivant le menu top du genre:
if ($page == 1)
{
include 'page1.php';
$titre = 'mon titre1';
}
if ($page == 2)
{
include 'page2.php';
$titre = 'mon titre2';
}
?>
Ce que je veux faire si la page demande existe dans la liste qu'on génère on inclue la page avec son titre et si la page demande est dans la table de la base de donnée on inclue la page avec son titre stocke dans la table
Je ne sais si j'ai bien "capish" mais si c'est ca, tu as donné la réponse dans ta démo ci-dessus.

Suffit de récupérer l'url et de la scinder de façon à obtenir la page active.
De récuperer le GET ou le POST de façon à avoir le fragment

Ainsi tu peux interroger ta BD et récupérer le titre puis le compléter par les fragments:

Exemple:

w**w.ton_site/fofo/index.php?page=25
Ce qui donnerait : Bienvenue dans le forum.

w*w.ton_site/fofo/index.php?categorie=Faq&topic=Comment...&page=3
Ce qui donnerait : Bienvenue dans le forum. Catégorie Faq, Massage: Comment..., page 3

Ca me parait être ce que tu cherches à faire, non?
Du reste ce type de rapatriement de fichiers me fait penser à un topic pas trop vieux:
qui est celui-ci http://www.phpfrance.com/forums/voir_sujet-249149.php

Tout se joue sur $_SERVER, $_GET ou $_POST, un while (eventuel) sur le nombre d'éléments
de l'url puis un switch. Tu fais un foreach sur les fragments et t'associes le tout.

Un bémol si, biensur, tu utilises le Rewriting mais l'approche reste la même.

@+ bon code ;)