Le fonctionnement
Autre fonction appelée par afficherLiens()
: afficherMots(). Celle-ci
liste l'ensemble des mots-clefs uniques contenus dans notre
base, accompagnés de leurs liens et du nombre d'entrées
pour chacun :
function afficherMots() {
$mots = array();
$motsdavant = array();
$req = "SELECT mots FROM delicieux;";
$res = mysql_query($req);
while ($row = mysql_fetch_array($res)) {
$leMot = split(" ", $row['mots']);
$motdavant = array_merge($mots);
$mots = array_merge($motdavant, $leMot);
}
$unique = array_unique($mots);
$nombre = array_count_values($mots);
echo '<div class="mots">';
foreach ($unique as $mot) {
$i = $nombre[$mot];
echo "$i <a href='index.php?m=$mot'>$mot</a><br/>
";
}
if (isset($_REQUEST['m'])) {
echo '<a href="index.php">Retour</a>';
}
echo '</div>';
}
Après
avoir récupéré tous les mots-clefs de
la base, nous les plaçons dans le tableau $mots,
dont nous retirons les doublons(avec array_unique())et
comptons le nombre (avec array_count_values()).
C'est ensuite une boucle foreach()
qui se charge de parcourir $unique
(la liste des mots uniques) et de la mettre en correspondance
avec le nombre d'occurrences pour ce mot (contenus dans $nombre).
Le tout est affiché au sein d'une balise div.
Nous testons enfin si la variable "m"
est disponible : dans ce cas, l'utilisateur a demandé
l'affichage d'une partie de la liste des mots, et nous lui
fournissons un lien vers la liste complète (la page
d'accueil).
La fonction prenant en charge l'affichage par mots-clefs
s'appelle afficherLiensPourMot(),
que voici :
function afficherLiensPourMot($mot)
{
$req = 'SELECT * FROM delicieux ';
$req.= 'WHERE mots LIKE "%'.$mot.'%" GROUP BY
datation DESC;';
$res = mysql_query($req);
echo '<div class="liens">';
afficherMots();
while ($row = mysql_fetch_array($res)) {
echo "<p><a href='$row[1]'>$row[2]</a><br/>";
echo $row[3].'<br/>';
echo "<small>dans ";
echo separerMots($row[4]);
echo ", le $row[5]</small></p>";
}
echo '</div>';
}
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Celle-ci est très proche de afficherLiens(),
sauf qu'ici nous précisons ce que nous recherchons
dans la base, en l'occurrence les lignes contenant le mot
$mot, n'importe où.
Après cela, le reste est identique à sa fonction
soeur.
Le script est complet
et fonctionnel.
|