Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 05/02/2010, 13h16   #1
Membre à l'essai
 
Inscription : juin 2009
Messages : 76
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 76
Points : 21
Points : 21
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
Daviloppeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 13h54   #2
Membre Expert
 
Avatar de David Guillot
 
Homme David Guillot
Chef de projet en SSII
Inscription : mars 2004
Messages : 879
Détails du profil
Informations personnelles :
Nom : Homme David Guillot
Âge : 27
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2004
Messages : 879
Points : 1 149
Points : 1 149
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()...
__________________
Avant de poser une question ici :

Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé
David Guillot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 14h10   #3
Membre à l'essai
 
Inscription : juin 2009
Messages : 76
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 76
Points : 21
Points : 21
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.
Daviloppeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 14h28   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur développement logiciels
Inscription : août 2006
Messages : 10 045
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 045
Points : 16 340
Points : 16 340
Envoyer un message via MSN à CinePhil
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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 14h40   #5
Membre à l'essai
 
Inscription : juin 2009
Messages : 76
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 76
Points : 21
Points : 21
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...
Daviloppeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 15h07   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur développement logiciels
Inscription : août 2006
Messages : 10 045
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 045
Points : 16 340
Points : 16 340
Envoyer un message via MSN à CinePhil
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 :
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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2010, 15h20   #7
Membre à l'essai
 
Inscription : juin 2009
Messages : 76
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 76
Points : 21
Points : 21
Merci beaucoup pour ta réponse.

Je vais revoir mon MCD et modifier en conséquence.
Daviloppeur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 03h56.


 
 
 
 
Partenaires

Hébergement Web