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 :

Champs unique séparé par le même caractère [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 98
    Par défaut Champs unique séparé par le même caractère
    Bonjour,

    Je possède un champs de type char contenant plusieurs mots (sans espace) séparé toujours par le même caractère (chr 10).

    Existe t'il un moyen pour faire une requête en php permettant de faire ceci:
    Requêtes recherchées :
    1. récupérer le nombre total de mots
    2. récupérer les mots situé entre une limite basse et une limite haute, par exemple récupérer les mots situés entre le 5ème et le 10ème mot


    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut

    Qu'est-ce que tu appelles "Champ unique", quel est ton contexte (base de données, fichier texte, fichier xml...) ?

    Au pif je te dirais bien de regarder du côté de la fonction explode()...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 98
    Par défaut
    Pour résumer le contexte, j'utilise une bdd mysql.

    Dans cette bdd, je possède une table "test" ayant un champs de type char appelé "listemots" et un de type int appelé "id".

    Dans listemots , je stocke un ou plusieurs mots séparé par le caractère chr(10).

    par exemple :

    id->1 listemots->camionXvoitureXcasserole
    id->2 listemots->rougeXvertXbleu
    id->3 listemots->solitaire
    id->...

    (ici X symbolise le chr(10))

    En utilisant la fonction explode de php je dois pouvoir effectivement parvenir à mon résultat, mais je souhaiterais autant que possible faire une solution 100% mysql si cela est possible.

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    Pourquoi y a t-il plusieurs mots accolés les uns aux autres et, d'après ton exemple, apparemment sans rapport ?

    Si encore tu travaillais sur une phrase, donc des mots séparés par des espaces, on pourrait comprendre mais là il y a vraisemblablement une erreur de modélisation des données.

    Parle nous du cas concret plutôt que d'une table test afin qu'on comprenne mieux de quoi il s'agit et ce que tu veux faire.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 98
    Par défaut
    Alors sans passer par le mode test, voici ma situation réelle.

    Je possède une table listeamis comprenant plusieurs champs:

    nom : id
    type : int (autoincrement)

    nom : username
    type : varchar(20)

    nom : amis
    type : text

    Le but est de stocker pour un username la liste de tous ces amis dans le champs amis.

    id->1 nom->toto amis->victor,paul,valentine
    id->2 nom->paul amis->toto,juliette,alex
    id->...

    Pour le moment je gère l'ajout d'amis en ajoutant chr(10) et en ajoutant l'amis ensuite.
    Le champs amis est donc de la forme amis1(chr10)amis2(chr10)amis3...

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut
    C'est bien ce que je disais, il y a une erreur de modélisation !

    Règle de gestion :
    Un user peut avoir pour ami des users et un user peut être considéré comme ami par d'autres users.

    MCD :
    user -0,n----etre_ami----0,n- user

    Tables :
    user (user_id, username...)
    amitie (a_id_user, a_id_ami...)

    Quels sont les amis de Daviloppeur ?
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT u2.username
    FROM user AS u1
    INNER JOIN amitie AS a ON u1.user_id = a.a_id_user
      INNER JOIN user AS u2 ON a.a_id_ami = u2.user_id
    WHERE u1.username = 'Daviloppeur'
    ORDER BY u2.username
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. [XL-2007] Remplir une plage par le même caractère
    Par apt dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/04/2012, 06h04
  2. Réponses: 5
    Dernier message: 13/04/2010, 11h50
  3. Réponses: 1
    Dernier message: 24/07/2009, 15h40
  4. Réponses: 2
    Dernier message: 17/06/2008, 00h04
  5. [RegEx] Extraire des nombres séparés par des caractères spéciaux
    Par GouKen dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2008, 16h49

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