Voici un système d'articles. Il utilise mysql (une table). Caractéristiques :
- Titre, article, auteur, date et hits (nombres de clics)
- Deux fichiers (articles.php et viewarticle.php)
Voici la table mysql dont vous aurez besoin :
CREATE TABLE `table_articles` (
`id` int(8) unsigned NOT NULL auto_increment,
`auteur` varchar(255) NOT NULL default '',
`date` int(15) unsigned NOT NULL default '0',
`titre` varchar(255) NOT NULL default '',
`texte` text NOT NULL,
`hit` int(10) unsigned NOT NULL default '1',
PRIMARY KEY (`id`)
) TYPE=MyISAM ;
Source / Exemple :
articles.php :
<?php
//début des variables à éditer
$host = 'localhost';
$user = 'root';
$pass= '';
$bdd = 'ma_base';
$table_articles = 'table_articles';
//fin des variables à éditer
mysql_connect($host, $user, $pass); //connexion à mysql
mysql_select_db($bdd); //sélection de la base de données
if (isset($_POST['class'],$_POST['ordre']))
{
$class = $_POST['class'];
$ordre = $_POST['ordre'];
$sql = "SELECT id,auteur,titre,texte,date,hit FROM " . $table_articles . " ORDER BY " . $class . " " . $ordre; //requête ordonnée
$result = mysql_query($sql) or die('Erreur SQL : '.mysql_error());
}
else
{
$class = 'date';
$ordre = 'DESC';
$sql = "SELECT id,auteur,titre,texte,date,hit FROM " . $table_articles . " ORDER BY date DESC"; //requête ordonnée par défaut (date)
$result = mysql_query($sql) or die('Erreur SQL : '.mysql_error());
}
//singulier ou pluriel
if (mysql_numrows($result) <= 1)
{
echo mysql_numrows($result);
echo ' article référencé :<br><br>';
}
else
{
echo mysql_numrows($result);
echo ' articles référencés :<br><br>';
}
// formulaire pour l'ordre des articles
echo '<center><form method="POST" action="articles.php">
<select size="1" name="class">';
//si on a un ordre précis, on le sélectionne (selected) par défaut dans la liste
if ($class == 'date')
{
echo '<option value="date" selected>Par date';
}
else
{
echo '<option value="date">Par date';
}
if ($class == 'titre')
{
echo '<option value="titre" selected>Par titre';
}
else
{
echo '<option value="titre">Par titre';
}
if ($class == 'auteur')
{
echo '<option value="auteur" selected>Par auteur';
}
else
{
echo '<option value="auteur">Par auteur';
}
if($class == 'hit')
{
echo '<option value="hit" selected>Par hit';
}
else
{
echo '<option value="hit">Par hit';
}
echo '</select>';
echo ' ';
echo '<select size="1" name="ordre">';
if($ordre == 'DESC')
{
echo '<option value="DESC" selected>Décroissant';
}
else
{
echo '<option value="DESC">Décroissant';
}
if($ordre == 'ASC')
{
echo '<option value="ASC" selected>Croissant';
}
else
{
echo '<option value="ASC">Croissant';
}
echo '</select>';
echo ' ';
echo '<input type="submit" value="OK">';
echo '</center></form>';
//on ecrit les enregistrements
while($row = mysql_fetch_array($result)){
echo '<a href="viewarticle.php?id='.$row['id'].'">'; //lien vers viewarticle.php + id de l'article
echo ' - <b>'.$row['titre'].'</b>, ';
echo 'par '.$row['auteur'].' le ';
echo date("d/m/Y",$row['date']).' ';
echo '(lu '.$row['hit'].' fois).<br></a>';
echo substr($row['texte'], 0, 200).' ...</font><br>'; //on ecrits les 200 premiers caractères de l'article
echo '<br><br>';
}
mysql_close(); //on ferme la connexion mysql
?>
//////////////////////////////////
/// viewarticle.php
//////////////////////////////////
<?php
//contrôle si un id est définie (par viewsource.php?id=...)
if (empty($_GET['id']))
{
die('Erreur, pas d\'id défini');
}
//début des variables à éditer
$host = 'localhost';
$user = 'root';
$pass= '';
$bdd = 'ma_base';
$table_articles = 'table_articles';
//fin des variables à éditer
$db = mysql_connect($host, $user, $pass); //connexion à mysql
mysql_select_db($bdd); //sélection de la base de données
$query = "SELECT * FROM $table_articles WHERE id='" . $_GET['id'] . "'"; //on sélectionne l'article
$result = mysql_query($query) or die('Erreur SQL : '.mysql_error());
$val = mysql_fetch_array($result); //on récupère les résultats
echo '<center><h2>'.$val['titre'].'</h2> par '.$val['auteur'].'</center><br><br>';
echo nl2br($val['texte']); //on écrit l'article avec nl2br() qui met les retours à la ligne
echo '<br><br><br><center><a href="index.php?p=articles">Retour</a></center><br><br>';
$val['hit']++; //on prend le nombre de cliques actuel
$hit = $val['hit']; //on l'augmente (de 1)
$sql = "UPDATE $table_articles SET hit='$hit' WHERE id='" . $_GET['id'] . "'"; //et on l'insert
$req = mysql_query($sql) or die('Erreur SQL : ' .mysql_error() . '<br>Requête : ' . $sql);
mysql_close(); //on ferme la connexion
?>
Conclusion :
Vous pouvez faire votre propre script pour ajouter des articles.. ou alors les ajouter directement dans phpmyadmin ! ;)
@+
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.