Tout d'abord la base de donnée.
Demandons-nous alors quelles sont les informations récurrentes des news que l'on affiche :
- le nom de l'auteur de la news
- la date de publication de la news
- le texte de la news elle-même
- un identificateur unique (par exemple un champs id de type AUTO_INCREMENT) qui nous permettra de faire la distinction entre toutes les news.
Voici le code pour créer la table.Il vous suffit de la copier coller dans requête sql sous phpmyadmin par exmeple.
- Code: Tout sélectionner
CREATE TABLE news (
id int(6) NOT NULL AUTO_INCREMENT,
auteur VARCHAR(30) NOT NULL,
titre text NOT NULL,
date datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
texte_news text NOT NULL,
PRIMARY KEY (id)
TYPE=MyISAM;
Avant de continuer plus loin le script, nous allons supposer que les news seront affichées sur la page d'accueil de votre site (soit sur la page index.php directement à la racine de votre site).
Ensuite, afin de ne pas trop retoucher le code de votre page index.php (soit la page d'accueil déjà existante de votre site) nous allons placer tout le code permettant d'afficher les news dans une autre page PHP (donc différente de la page d'accueil du site, et que l'on nommera news.php).
Cependant, pas de panique, nous allons quand même pouvoir afficher les news sur la page d'accueil du site via la fonction include() de PHP.
Mes camarades vous dirons que j'aime les includes. C'est car ça permet d'avoir une structure plus organiser et un codage plus léger et plus propre

Voilà le code de la page news.php
- Code: Tout sélectionner
<?php
// on se connecte à notre base
$base = mysql_connect ('serveur', 'login', 'password');
mysql_select_db('nom_base', $base);
// lancement de la requête. on sélectionne les news que l'on va ordonner suivant l'ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)
$sql = 'SELECT auteur, titre, date, texte_news FROM news ORDER BY date DESC;';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
// on compte le nombre de news stockées dans la base de données
$nb_news = mysql_num_rows($req);
if ($nb_news == 0) {
echo 'Aucune news enregistrée.';
}
else {
// si on a au moins une news, on l'affiche
while ($data = mysql_fetch_array($req)) {
// on décompose la date
sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec);
// on affiche les résultats
echo '
News de : ' , htmlentities(trim($data['auteur'])) , '
';
echo 'Titre : ' , htmlentities(trim($data['titre'])) , '
';
echo 'Postée le : ' , $jour , '/' , $mois , '/' , $an , ' à ' , $heure , ':' , $min , ':' , $sec , '
';
echo 'News : ' , nl2br(htmlentities(trim($data['texte_news']))) , '
';
}
}
// on libère l'espace mémoire alloué à cette requête
mysql_free_result ($req);
// on ferme la connexion à la base de données
mysql_close ();
?>
- Code: Tout sélectionner
<html>
<head>
<title>Index de mon site WEB</title>
</head>
<body>
<!-- code HTML avant l'affiche des news (tout dépend comment est constitué votre site) -->
<?php
// on inclut l'affichage de nos news
include ('news.php');
?>
<!-- code HTML après l'affiche des news (tout dépend comment est constitué votre site) -->
</body>
</html>
- Code: Tout sélectionner
<?php
// on teste si le formulaire a été validé
if (isset($_POST['go']) && $_POST['go']=='Poster la news') {
// on se connecte à notre base
$base = mysql_connect ('serveur', 'login', 'password');
mysql_select_db('nom_base', $base);
// on teste la déclaration de nos variables
if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['news'])) {
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
else {
if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['news'])) {
$erreur = 'Au moins un des champs est vide.';
}
// si tout est bon, on peut commencer l'insertion dans la base
else {
// lancement de la requête d'insertion
$sql = 'INSERT INTO news VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['news']).'")';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
// on ferme la connexion à la base de données
mysql_close();
// on redirige vers la page d'accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de retomber sur la page d'accueil du site.
header('Location: ../index.php');
// on termine le script courant
exit();
}
}
}
?>
<html>
<head>
<title>Insertion d'une nouvelle news</title>
</head>
<body>
<!-- on fait pointer le formulaire vers la page traitant les données -->
<form action="insert_news.php" method="post">
<table>
<tr><td>
<span class="gras">Auteur :</span>
</td><td>
<input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
</td></tr><tr><td>
<span class="gras">Titre :</span>
</td><td>
<input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo htmlentities(trim($_POST['titre'])); ?>">
</td></tr><tr><td>
<span class="gras">News :</span>
</td><td>
<textarea name="news" cols="50" rows="10"><?php if (isset($_POST['news'])) echo htmlentities(trim($_POST['news'])); ?></textarea>
</td></tr><tr><td><td align="right">
<input type="submit" name="go" value="Poster la news">
</td></tr></table>
</form>
<?php
// on affiche les erreurs éventuelles
if (isset($erreur)) echo '
',$erreur;
?>
</body>
</html>
Bonne continuation .
Bon aller je vous laisse il est temps pour pépé Tchup d'aller se coucher good night les amis.

ღ ♥Kornette | 
News