ne pas afficher certains messages qui ont des mots contenus dans une autre table
Bonjour, à tous
Je voudrai exclure les messages à caractères douteux des vrais messages
donc par défaut j'enregistre tous les messages qui sont stockés dans la colonne message avec auteur et la date de diffusion
la seconde me permet de filtrer les messages par comparaison
donc on a 2 tables
1ère table livre avec les colonnes auteur, date, et message
2ème table mot avec une colonne indertits
je bute sur une requête qui doit être simple
j'ai essayé distinct ou like ou d'autres formules sans grand résultat comme ceci
Code:
1 2
|
$retour = mysql_query('SELECT DISTINCT COUNT(*) AS nb_messages FROM livre WHERE message NOT EXIST indertits FROM mot'); |
Auriez vous une suggestion ? merci Steph
Le code décomposé qui effectue les requêtes pour l'affichage de tous les messages
Code:
1 2 3 4 5 6
|
donc on se connecte sur la bdd
require ("connection.php");
$sql = 'SELECT auteur, usremail, date_signature, message FROM livre ORDER BY date_signature DESC';
$req=mysql_query($sql);
$nb_signature = mysql_num_rows($req); |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
$sql = 'SELECT auteur, date_signature, message FROM livre WHERE NOT EXIST indertits FROM mot';
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo '<strong>','Commentaires','</strong>',' ', 'Livre', '<strong>',' ', '</strong>', ' ','* Champs obligatoires','<br />','Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="./url.php?page=' . $i . '">' . $i . '</a> ';
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
if (isset($_GET['page']))
{
$page = intval($_GET['page']); // On récupère le numéro de la page indiqué dans l'adresse
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
$reponse = mysql_query('SELECT * FROM livre ORDER BY id DESC LIMIT ' .htmlentities($premierMessageAafficher). ', ' .htmlentities($nombreDeMessagesParPage));
//$reponse = mysql_query('SELECT livre from auteur message ' .htmlentities($premierMessageAafficher). ', ' .htmlentities($nombreDeMessagesParPage));
while ($donnees = mysql_fetch_array($reponse))
{
echo '<div class="commentlist clear fix" style="margin-top:1.1rem;font-size:1.1rem;line-height: 1.4rem;"><li class="alt"><div class="commentlist" id="d_corps_msg"><div class="commentlist" id="body_txt">','<strong>' . $donnees['auteur'] . '</strong> <em>' . htmlentities($donnees['date_signature']) . '</em> a écrit :<br />' . $donnees['message'] . '</div></div></li></div>';
}
mysql_free_result ($reponse);
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL) |