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 :

Décortiquer un Champ [SQL-Server]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 119
    Par défaut Décortiquer un Champ
    Bonjour
    je souhaiterais décortiquer un champ "villes" contenant l'information suivante:

    VILLE1,VILLE2,VILLE3,VILLE5

    en condition suivante:

    select * from client where ville='ville1' or 'ville='ville2' or ville='ville3' or ville='ville5'

    de ce fait il me faudra des fonctions qui m'aideront à détecter la chaine de caractère jusqu'à arriver à la virgule, et générer la première condition, ensuite detcter la deuxième chaine jusqu'a arriver à la virgule........ ainsi de suite.

    l'algorithme je l'ai, les fonction PHP qui me dtectent les chaine avant virgule et me les retirer à part je n'arrive pas à m'y prendre.

    quelqu'à peut me l'indiquer?
    merci de votre collaboration

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    Salut,

    bah un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $str_villes = 'VILLE1,VILLE2,VILLE3,VILLE5';
     
    $arr_villes = explode(',', $str_villes);
     
    function quote($value) {
        return "'".mysql_real_escape_string(trim($value))."'";
    }
     
    $arr_villes = array_map('quote', $arr_villes);
     
    $query = 'SELECT * FROM client WHERE ville IN ('.implode(', ', $arr_villes).');';

  3. #3
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    je n'ai pas bien compris ce que tu cherche à faire exactement, mais essayer d'utiliser le like et les %.
    quelque chose qui ressemblera à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    select * 
    from client 
    where ville like 'ville1,%' or ville like '%,ville2,%' or ville like '%,%,ville3,%' or ville like '%,%,%,ville5'

  4. #4
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 119
    Par défaut
    merci yabyab, la solution explode m'a aidé, oui certes cette fonction est méconnue pour moi,
    je dormirai moi bête ce soir.

    @+

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

Discussions similaires

  1. décortiquer un champ à l'aide de Talend
    Par wissem.ba dans le forum Développement de jobs
    Réponses: 9
    Dernier message: 28/04/2011, 12h06
  2. [SQL-SERVER] Comparaison de deux champs décortiqué
    Par Au2laDeNosReves dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/09/2009, 10h11
  3. [ADO] Constantes des types de champ
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/09/2002, 11h08
  4. Taille des champs proportionnelle...
    Par Depteam1 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/08/2002, 11h48
  5. taille max du nom d'un champ
    Par hna dans le forum Paradox
    Réponses: 2
    Dernier message: 28/07/2002, 02h40

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