Balise title en fonction d'un titre de news.

WRInaute passionné
Salut,

Bon, j'avais vu qu'on en avait parlé, mais impossible de retrouver le post qui va bien.

Dans la même idée que pour les titre de page du forum de WRI, je souhaite mettre en titre de page, le titre de la news affichée.

J'utilise Freenews, mais j'y arrive pas.

Voici l'url, qui n'apportera rien, j'en suis sur, mais bon...
h**p://www.raikkonen-f1.com/test/annuaire/actualite.php?id_news=8.

Donc, comment afficher la variable titre de la news id_news=8 ?
 
WRInaute accro
quelque chose dans ce genre la

Code:
list($title) = mysql_fetch(mysql_query("select title from news where id_news=8"));
echo("<title>$title<title>");

PS : un ch'tit coup d'URL rewriting au passage ? :)
 
WRInaute passionné
mahefarivony a dit:
quelque chose dans ce genre la

Code:
list($title) = mysql_fetch(mysql_query("select title from news where id_news=8"));
echo("<title>$title<title>");

PS : un ch'tit coup d'URL rewriting au passage ? :)

Chaque chose en sont temps pour l'URL Rewriting :wink:

Par contre comment faire si le id de la page change.

Bah oui, là c'es un id 8, mais il change en fonction de l'article appelé.
 
WRInaute accro
oh la, des petits cours de php s'imposent :lol:

h**p://www.raikkonen-f1.com/test/annuaire/actualite.php?id_news=8.

dans ce cas présent, tu appelles cette page avec id_news=8
donc dans ta page actualite.php ou tu fais ton petit bricolage, tu récuperes la variable $id_news

a plus qu'a faire
Code:
list($title) = mysql_fetch(mysql_query("select title from news where id_news=$id_news"));
echo("<title>$title<title>");
 
WRInaute passionné
...

Geuuurrrrr...... gueunnnieuuuuuu.....

A comprend rien.

Bon voilà ce que je tente:
Code:
<html>
<head>
<?
list($titre) = xxxxxxxx;
echo "<title>$titre</title>";
?>

Mais sait pas quoi mettre dans xxxxxx, j'essai plein de truc mais rien ne passe.

Avec mysql_fetch, j'ai une erreur "Call to undefined function: mysql_fetch() "
 
WRInaute accro
hum.. c'etait une maniere d'illustrer la maniere de faire mais la syntaxe c'est sur que c'est pas ca.

ailleurs dans ta page actualite.php, tu as surement d'autres lignes qui font appel a la base de donnée.. Essaye de reperer un "select -- from machin" et tu repompes la syntaxe...
 
WRInaute passionné
...

Ouais, j'ai bien fouillé, et tout essayé.

Code:
<?
$meta="SELECT titre FROM news WHERE id_news=$id_news"; 
echo"<title>$meta<title>";
?>

Voici le code qui doiy normalement fonctionner.

Je prend la variable meta, dans laquelle je place la donne titre de la base news lorsque id_news=celle de la page, ici 8.

Le problème c'est que une fois exécuté, la source m'affiche

Code:
<title>SELECT titre FROM news WHERE id_news=8</title>

Le code exécute bien le id_news, vu qu'il prend bien la 8, mais il me met toute la ligne dans la variable au lieu de la valeur titre.
 
WRInaute accro
cherche un truc du genre
mysql_query ou sql_query

(c'est l'instruction qui va aller effectivement faire une requete dans mysql)
 
WRInaute impliqué
À priori mysql_query() devrait faire l'affaire ici :wink:
Sinon, je persiste, ce n'est pas vraiment correct de récupérer une variable GET par $variable. Dans les dernières versions de php, il est recommandé de récupérer ces variables par $_GET['variable'], autrement cela peut créer des conflits avec d'autres variables, notamment des variables POST (qu'il faut maintenant récupérer par $_POST['variable']). Autant prendre dès maintenant les bonnes habitudes :)
Donc dans ton cas, utilise $_GET['id_news'] plutôt que $id_news.
 
WRInaute accro
on va d'abord lui laisser le temps de faire sa premiere requete base de données :)

> un petit pas pour l'homme, une grosse avancée pour raikkonen ;-)
 
WRInaute passionné
...

Bon, vu que le script n'est pas de moi... normal... :mrgreen:

Voici ce que j'ai pu comprendre.

déjà voici l'url pour visualiser.
h**p://raikkonen-f1.com/test/annuaire/index.php

La page affiche des news, la première avec une suite pour l'article qui dirige vers la page actualite.php avec l'id_news qui correspond, ici 8.

Code de la page index pour l'affichage des news:
Code:
<?php
$chemin = "news";
$what_aff = "grand_format";
include ("$chemin/aff_news.php");
?>

La partie qui va bien de la page aff_news.php:
Code:
if ($aff_news != "1")
	{
		include ("$chemin/config.php");
		include ("$chemin/options.inc.php");
		include ("$chemin/freenews_functions.inc.php");
	}
.
.
.
.
.
elseif ($what_aff == "grand_format")
	{
		while ($i <= $nb_news)
			{
				$query = "select * from commentaires where id_news='$id_news3[$i]'";
				$resultat = mysql_query($query);
				$nb_comment = mysql_num_rows($resultat);

				$code_insert = aff_news_gf($code_html13[1],$date_news3[$i],$titre3[$i],$texte3[$i],$texte23[$i],$id_news3[$i], $auteur3[$i]);

				echo "$code_insert";
				echo "<br>";
				$i++;
			}
	}

Et ce qu'il faut de la page freenews_functions.inc.php:
Code:
function aff_news_gf($code_html1,$date_news,$titre,$texte,$texte2,$id_news, $auteur = "")
	{
		global $chemin,$nb_comment,$url_site,$rep_smileys,$url_suite,$HTTP_REFERER;

		if ($auteur != ""){
			$query = "select nom,email_auteur from acces_autorise where id='$auteur'";
			$resultat = mysql_query($query);
			while ($ligne = mysql_fetch_array($resultat)){
				$nom_auteur[1] = $ligne["nom"];
				$email_auteur[1] = $ligne["email_auteur"];
			}
		}

		$code_insert2 = $code_html1;
		$tab_date = explode("-",$date_news);
		$heure = substr($date_news, 11,2);
		$min = substr($date_news, 14,2);
		$tab_date[2] = substr($tab_date[2],0,2);
		$date = $tab_date[2]."-".$tab_date[1]."-".$tab_date[0]." à ".$heure.":".$min;
		$url = $url_suite."?id_news=".$id_news;

		$code_insert2 = str_replace("<TITRE>","<font color=\"#7864cb\">$titre</font>",$code_insert2);
		$code_insert2 = str_replace("<DATE>","<font color=\"#cb6060\">$date</font>",$code_insert2);
		$code_insert2 = str_replace("<TEXTE>",$texte,$code_insert2);
		$code_insert2 = str_replace("<TEXTE2>",$texte2,$code_insert2);

		$code_insert2 = str_replace("<COMMENT>","<font size=\"2\" face=\"Arial\" color=\"#629d62\">$nb_comment </font><A HREF='javascript:popup(\"$url_site/$rep_smileys/comment.php?id_news=$id_news\")'><font size=\"2\" color=\"#629d62\">Commentaires</font></a>&nbsp;",$code_insert2);
		$code_insert2 = str_replace("<IMPRIMER>","<a href=\"$url_site/$rep_smileys/imprimer.php?id_news=$id_news\" target=\"_blank\"><font size=\"2\" color=\"#629d62\">Imprimer</font></a>&nbsp;",$code_insert2);
		$code_insert2 = str_replace("<ENVOYER>","<A HREF='javascript:popup(\"$url_site/$rep_smileys/envoyer.php?id_news=$id_news\")'><font size=\"2\" color=\"#629d62\">Envoyer l'article à un ami</font></a>",$code_insert2);
		$code_insert2 = str_replace("<PAGE_PRECEDENTE>","&nbsp;&nbsp;<font size=\"1\" face=\"Verdana\"><a href=\"$HTTP_REFERER\" style=\"color: #000000\" title=\"Revenir à la page précédente\">Retour à la page précédente <img border=\"0\" src=\"images/bouton2.gif\" width=\"4\" height=\"7\"></a></font>",$code_insert2);
		$code_insert2 = str_replace("<AUTEUR>",$nom_auteur[1],$code_insert2);
		if ($email_auteur[1] == "")
			$email_auteur[1] = "[pas d'email]";
		$code_insert2 = str_replace("<MAIL_AUTEUR>",$email_auteur[1],$code_insert2);

		if ($texte2 != "")
			{
				$code_insert2 = str_replace("<SUITE>","<br><b><a href=\"$url\" style=\"color: #CC3300\" title=\"Lire l'article\"><font size=\"1\" face=\"Verdana\">Lire l'article</font></a><font size=\"1\" face=\"Verdana\" color=\"#CC3300\"> <img border=\"0\" src=\"$url_site/$rep_smileys/images/bouton3.gif\" width=\"4\" height=\"7\"></font></b>",$code_insert2);
			}

		return $code_insert2;
	}
Avec bien sur la connexion a la base en début du fichier freenews_functions.inc.php. :wink:

Autant dire que j'ai du mal.
Je me suis dit hop, je choppe un script et hop, je le bidouille à ma sauce............. Bah nan! :roll:
 
WRInaute accro
voila donc un bel exemple d'acces a la base de donnée.
Code:
$query = "select nom,email_auteur from acces_autorise where id='$auteur'"; 
$resultat = mysql_query($query); 
while ($ligne = mysql_fetch_array($resultat)){ 
 $nom_auteur[1] = $ligne["nom"]; 
$email_auteur[1] = $ligne["email_auteur"];

Donc pour recuperer ton titre dans ta page actualite.php, ca donne un truc dans le genre
Code:
$query = "select title from table_news where id_news=$id_news"; 
$resultat = mysql_query($query); 
list($title)= mysql_fetch_array($resultat))

Tu adaptes bien entendu la requete pour que ca colle a ta table (champs, nom de table)
 
WRInaute passionné
...

Warning: mysql_query(): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /home/local/apache/htdocs/sites/r/raikkonen-f1.com/test/annuaire/actualite.php on line 5

Warning: mysql_query(): A link to the server could not be established in /home/local/apache/htdocs/sites/r/raikkonen-f1.com/test/annuaire/actualite.php on line 5

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/local/apache/htdocs/sites/r/raikkonen-f1.com/test/annuaire/actualite.php on line 6

Ouinnnnnn....

Est-ce que le problème viendrait du fait que la connexion se fasse gràace au fichier freenews_functions.inc.php, donc, plus loin dans la page.
Dois-je faire cette connexion avant le <head> ?

Parce que je commence la page juste par ça
Code:
<html>
<head>
<?php
$query = "select titre from news where id_news=$id_news";
$resultat = mysql_query($query);
list($metatitle)= mysql_fetch_array($resultat) ;
echo"<title>$metatitle</title>";
?>
 
WRInaute accro
Il faut faire la connexion a la base de données avant de faire la moindre requete mysql_query.. Et la ne me reponds pas : bin oui mais la connexion elle est plus bas..

> remonte la au début alors :mrgreen:
 
WRInaute passionné
..

:wink: je m'en doutais.

Bon, ça ne marche quand même pas.

Je vais lacher l'affaire pour le moment. comprend vaiment rien au php/MySQL

Merci quand même
 
WRInaute discret
Je reprend l'affaire ! Jai un ptit problème, je sais pas quoi inclure pour que $id_news est la valeur....enfin...voilà ce que jai mis :

Code:
<?php
 // on se connecte à MySQL
$db = mysql_connect('localhost', '*******', '******');

// on sélectionne la base
mysql_select_db('legend-nintendocom',$db);

$query = "select titre from news where id_news=$id_news";
$resultat = mysql_query($query);
list($metatitle)= mysql_fetch_array($resultat) ;
?>

Puis :
Code:
<title><?php echo $metatitle; ?></title>

Mais biensur ca m'affiche rie parce que on ne sait pas a quoi corespon la variable $id_news

donc quelle page inclure ?
 
WRInaute discret
ptit up

sinon jaimerais afficher le titre de la news mais via une variable et non leur systeme a eux qui consiste à mettre la balise <TITLE>
 
Discussions similaires
Haut