Reconnaissance, dans un texte, de mots pré-enregistré dans une base SQL [Résolu]

Signaler
Messages postés
8
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
24 juin 2005
-
Messages postés
88
Date d'inscription
mercredi 15 mai 2002
Statut
Membre
Dernière intervention
3 mai 2005
-
Bonjour,

Je suis débutant en PHP et j'ai un petit problème.
Je souhaite afficher un texte, à la manière d'un livre d'or (tous les textes sont stocké dans une base SQL) et quand le texte contient le nom de quelqu'un (une autre base de donnnée existe avec une liste d'identifiant) celui-ci s'affiche en rouge (par la suite, j'aimerais faire un lien vers la fiche de la personne)

voici le code de ma page qui m'affiche les différent texte entré :

<code>
<?

// Page d'affichage des messages

session_start();

// Parametres de connexion à la base de données
include("connexion.inc.php");

// Déclaration des variables
$nb_rep_pages=10; // Nombre de réponses par pages

//on se connecte à la base de donnée
$db = mysql_connect($BD_serveur,$BD_utilisateur,$BD_motDePasse) or die ("erreur de connexion");

//sélection de votre base de donnée
mysql_select_db($BD_base,$db) or die ("erreur de connexion base");

// Initialisation des variables
if(empty($page)) $page = 1;
if(empty($fin)){
$sql = "select count(*) as qte from $id";
$p = @mysql_query($sql,$db);
$fin = @mysql_result($p,"0","qte");
}

// Déclaration de la variable début
$debut = ($page - 1) * $nb_rep_pages;

//la requète de selection des messages
$req = mysql_query("SELECT date,message from $id Order by date_verif Desc LIMIT $debut,$nb_rep_pages ") or die ("erreur requete");

// Ici on calcul le nombre de page
$nbpages = ceil($fin / $nb_rep_pages); // Ici on arrondi

echo '[sectionmembre_acces_accueil.php Cliquez ici pour retourner à l\'accueil des membres]

';

echo "\";

//on ressort le contenu en boucle, et on stock dans un tableau avec mysql_fetch_array
while( $contenu = mysql_fetch_array ($req))
{

//on affiche le résultat
print '----
Le '.$contenu[date].'';

// Affichage par page :)
for($i = 1;$i <= $nbpages;$i ++){
echo "Page $i";
if($i < $nbpages) echo " - ";
}

//on referme la connexion
mysql_close();

?>

C'est grace à while($data = mysql_fetch_array($req_id)) que j'arrive a afficher les noms en rouge, mais le problème, c'est que tous les mots de mon texte sont répétés autant de fois que j'ai d'enregistrement dans la table 'table_utilisateurs'.

Je ne sais pas comment éviter ce problème. si je retire le while($data = mysql_fetch_array($req_id)) , sans oublier de retirer les { et } qui vont avec, mon texte s'affiche normalement, mais il n'y a plus la reconnaissance des noms enregistré...

HELP !

1 réponse

Messages postés
88
Date d'inscription
mercredi 15 mai 2002
Statut
Membre
Dernière intervention
3 mai 2005

Slt Tristan !

je te conseille de jeter un oeil la : ereg()

ca devrait te simplifer la chose et c plus rapide en plus !!

bon coding !

- Psy -