de ives le Dim Mar 06, 2005 02:02
Voici comment connaître la valeur la plus fréquemment trouvée dans un champs "champs" d'une table "table"
Tout d'abord, connectez-vous à mysql, puis voici la requête, et comment utiliser le résultat.
$requete = "SELECT champs, COUNT(*) As somme FROM table GROUP BY champs ORDER by somme DESC LIMIT 0,1";
$res = mysql_query($requete);
$file = mysql_fetch_array($res);
echo $file['champs'];
echo ' a été trouvé ';
echo $file['somme'].'fois';
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 ;
Et de plus :
$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
Ne jamais parler de valeur à un informaticien, mort de rire, excuse-moi
K'sea, mais là j'ai été touché aussi, et à vie PTDR