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 :

partie d'un champ contenue dans un autre


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut partie d'un champ contenue dans un autre
    bonsoir,
    voici les données du problème; soit 3 champ sur 2 tables( voir la pièce jointe)
    comment puis-je vérifier que mes deux enregistrement ont la même adresse puisque, en fait, c'est bien la même adresse mais notée différemment dans les deux tables?
    je ne voie pas quelles regex je devrais appliquer sur les champs ch1 et ch3 pour faire un select du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req="select * from table1, table2 where table1.ch1 = table2.ch1 and table1.ch3 = table2.ch3";
    merci pour votre aide
    Images attachées Images attachées  

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonsoir,

    c'est une regex à faire en php ou en sql ?
    Si c'est en php, tu peux tester (bien que scabreux et moche...)

    Code php : 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
     
    $chaine = 'une chaine,, avec plusieurs séparateurs possible. Le la du mots !';
     
    $mots = preg_split('#[,.]+#', $chaine);
     
    $pattern = '#';
     
    // on  constitue le pattern de recherche en éliminant les mots non significatifs (le, un, de...)
    foreach($mots as $mot){	
    	$sous_mots = preg_split('#[\s]#', $mot);
     
    	foreach($sous_mots as $sous_mot)
    		if(strlen($sous_mot) > 3)
    			$pattern .= $sous_mot.'(.)*' ;
     
    }
     
    $pattern .= '#i';

    Reste à tester ton 2ieme champs avec le pattern $pattern provenant du premier champs voir s'ils matchent

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    merci,
    l'idéal serait en sql; ce qui m'éviterai de faire plusieurs requêtes

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    bonjour,
    je repose ma question différemment.
    peut-on construire un select avec comme condition une suite de x lettres dans un champ qui ressemble à la même suite de x lettres dans un autre champ?
    j'ai essayé çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where (table1.ch1 REGEXP'.{8,}' = table2.ch1 REGEXP'.{8,}')
    mais çà ne fonctionne pas; que l'on mette = ou LIKE.
    avez-vous une piste?

  5. #5
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Comme ca, je dirais qu'il faut que tu passes par une sous requête pour ton champs 2

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    where (table1.ch1 REGEXP'.{8,}' = (select table2.Ch1....) )

    Enfin quelque chose du style...

Discussions similaires

  1. Champ contenu dans un autre
    Par sat83 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/01/2009, 15h36
  2. Requete : Champ d'une table contenu dans une autre table
    Par Bridou dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 19/02/2008, 10h34
  3. Réponses: 3
    Dernier message: 13/06/2006, 16h36
  4. Sélection champ contenu dans variable
    Par xa_plage dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/06/2006, 16h34
  5. [VBA] utiliser une macro contenue dans un autre classeur
    Par laloune dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 01/02/2006, 18h46

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