IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Comparer le contenu d'une variable aux valeurs contenues dans une table


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Comparer le contenu d'une variable aux valeurs contenues dans une table
    Bonjour, déjà je m'excuse si le sujet avait déjà été traité ( ne l'ai pas trouvé).
    soit je suis entrain de developper une petite application, mais je bloque sur un point et ce depuis plusieurs jours déjà et j'ai besoin de votre aide.

    voila:
    j'ai une table (MotInterdit) dans ma base:

    id mot
    1 interdit1
    2 interdit2
    .. .....

    et j'ai une variable $mess='salut bonjour interdit1 okoko'

    mon problème est de modifier le contenu de la variable $status en fonction du contenu de la variable $mess, si par exemple $mess ne contient aucun mot interdit qui se trouve dans la table MotInterdit, $status = 1, si jamais $mess contient un mot interdit comme c'est le cas dans mon exemple, $status=2.

    donc comme je disais je me prend la tête depuis plusieurs jours avec les array(); et autre mysql_fetch_array sans succès, aussi si quelqu'un peut me proposé une solution ou une piste suis preneur.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    montre nous un bout du code que tu as essayés ;-)
    Stay in Bed .. Save Energy

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bjr et désolé pour la long retard de la réponse, j'ai du me déplacer pour un long moment dans un petit village sans internet.

    bref voici ce que j'ai écrit comme code, je passe les étapes de connexion et autre


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    //  Recherche du nombre de ligne ou mots dans la table MOTINTERDIT
    
    $req1 = 'SELECT COUNT(*) FROM motinterdit';
    $result1 = mysql_query($req1);
    $max_ligne = mysql_fetch_array($result1);
    // echo $max_ligne [0];
    
    
    // je fais un select des mots interdits, que je mets dans un tableau
    $req2=mysql_query("select interdit from motinterdit" );
    
    		  $i=0;
    		  $max = $max_ligne [0];
    while($row=mysql_fetch_row($req2) AND $i <= $max)
    		{
    		  $interdit[$i] = $row[0];
    		  $i++;
    
    		} 
    
    $phrase = "je n'aime pas interdit1 interdit2";
    
    // ICI on commence le traitement de la phrase pour detection des mots interdit et initialisation de la variable $status
    
     $tb=" ".$phrase." ";
    
    //donc je suppose que la phrase est correcte.
    
    $state=1;  
    
     for ($i = 0; $i<count($interdit);$i++)
      {
        $pos  = strpos($tb," ".$interdit[$i]." ");
        if($pos)
        {
            //echo "interdit trouve ";
            $state =4;       
            break;
        }
      }
    if($state==4)
    {
        echo "message non envoye pour cause d'obscenite". '<br />';
    	echo $state;
        exit();
    }
    présenté comme ça, le status ne change pas et reste toujours à 1 même s'il y'a présence de mot interdit, je rappel que la bdd est ms sql, merci pour votre aide

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Salut, tu peux utiliser preg_match() pour facilement évaluer si une phrase ou un mot contient une chaîne de caractères.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    $phrase = "je n'aime pas interdit1 interdit2";
     
    //Sélection des mots interdits dans la base
    $req2 = mysql_query("select interdit from motinterdit" );
    $state = 1;
    //On fait le tour des résultats
    while($row = mysql_fetch_assoc($req2)) {
    	//Si un des mots de la phrase contient le mot actuellement évalué, casse insensible
    	if (preg_match( '/'.$row['interdit'].'/i', $phrase , $match)) {
    		//On quitte la boucle
    		$state = 4; 
    		break;
     
    	}
    }
     
    if($state == 4)
    {
        echo "Message non envoye pour cause d'obscenite". '<br />';
        echo $state;
        exit();
    }

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    salut et merci Funkymxs, je vais tester ça de suite

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    malheuresement ça marche pas, ou alors j'utilise mal la fonction, mais dans tous les cas je vais explorer cette voie

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/05/2014, 10h23
  2. Réponses: 3
    Dernier message: 13/12/2009, 17h04
  3. Réponses: 1
    Dernier message: 16/05/2007, 12h51
  4. [MySQL] récupérer dans une boucle chaque information MySQL dans une variable différente
    Par gtenthorey dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/05/2007, 22h34
  5. Réponses: 1
    Dernier message: 17/01/2007, 21h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo