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

Langage PHP Discussion :

expressions régulières comparer un nombre dans sa bdd


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut expressions régulières comparer un nombre dans sa bdd
    Bonjour,

    je n'arrive pas a comparer une variable, j'envoie une phrase type :"test123" et dans ma page php je voudrais récupérer seulement les chiffres (si il y en a) pour les comparer dans ma table j'ai donc utiliser preg_match_all comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     preg_match_all("#[0-9]\w+#", "$message", $out);
           $nb=count($out[0]); 
     
    for($i=0;$i<$nb;$i++) 
    { 
    $message = $out[0][$i].'
    ';
    puis je le compare a ma bdd :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $req = $dbh->prepare("SELECT * FROM conversation WHERE question=:message");
                    $req->execute(array('message' => ''.$message.''));
    mais il ne trouve rien je ne comprend pas pourquoi car quand je fait un var_dump de $message j'ai bien seulement le nombre, et j'ai un autre probleme car si il n'y a qu'un chiffre ex : "test4" il affiche "test4" dans le var_dump()

    CDT

  2. #2
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Salut,

    je n'ai pas tout compris

    Tu ne gardes que les chiffres, donc, de test123 tu ne garde que 123 c'est ça ?

    Et tu souhaites en faire quoi de cette valeur ?


    Aussi,
    Ta boucle for est bizarre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for($i=0;$i<$nb;$i++) 
    { 
    $message = $out[0][$i].'
    ';
    $message sera effacé à chaque fois, les valeurs précédentes ne sont pas prise en compte et donc là, elle est inutile.

    Tu cherches à faire quoi avec cette boucle ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    oui c'est sa ! et aussi si la phrase est "test4" je voudrais garder 4 et ensuite je voudrais regarder si 4 existe dans ma table, effectivement j'ai modifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    preg_match_all("#[0-9]\w+#", "$message", $out);
           $nb=count($out[0]); 
    foreach($out as $message){
    $message = implode($out[0]);
    donc maintenant sa marche bien mais seulement si j'ai plusieurs chiffre et je voudrais aussi si il n'y en a qu'un seul comment doit-je faire ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 59
    Par défaut
    C'est bon pour le cou c’était mon expression régulière qui n’était pas bonne j'ai donc mit :
    (?:\d*\.)?\d+
    pour les nombres décimal et tout marche !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer 15 plus gros nombres dans une BDD
    Par Ben-o dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/10/2010, 15h09
  2. Réponses: 22
    Dernier message: 05/09/2006, 20h32
  3. Réponses: 4
    Dernier message: 11/08/2006, 14h47
  4. [C# express 2005] Récupération d'information dans une BDD
    Par poussinphp dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/05/2006, 23h25
  5. Expression régulière d'un nombre strictement positif?
    Par rlnd23 dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 02/11/2005, 23h10

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