PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.info.auteurs > mysql
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
mysql

Réponse
 
LinkBack Outils de la discussion
Vieux 26/03/2008, 19h03   #1
alainL
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut mysql

Bonsoir,
Je cherche un forum en français sur l'utilisation de mysql. Si vous avez
ça dans vos tablettes... merci à l'avance !

A tout hasard, voilà le prb:
Je classe des fleurs. L'un des champs "petales" contient le nb de
petales... (oui !) Mon "enum" offre plusieurs categories :
3,4,5,6à10, plus...
Pour certaines fleurs, je voudrais qu'elles répondent vrai à deux
catégories... (anemone peut avoir 5 mais aussi 7 ou 8 petales)
Pour le moment je ne vois qu'une soluce: enregistrer deux lignes
"anemone" l'une avec 5, l'autre avec 6à10....

--
Alain L

Mon village en Haute Soule : http://jarailet.club.fr
Carnet de voyages: http://jarailet.club.fr/Randobal
  Réponse avec citation
Vieux 26/03/2008, 20h32   #2
Thierry B.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

--{ alainL a plopé ceci: }--

> Bonsoir,
> Je cherche un forum en français sur l'utilisation de mysql. Si vous avez
> ça dans vos tablettes... merci à l'avance !
>

A suivre sur fr.comp.applications.sgbd


> A tout hasard, voilà le prb:
> Je classe des fleurs. L'un des champs "petales" contient le nb de
> petales... (oui !) Mon "enum" offre plusieurs categories :
> 3,4,5,6à10, plus...
> Pour certaines fleurs, je voudrais qu'elles répondent vrai à deux
> catégories... (anemone peut avoir 5 mais aussi 7 ou 8 petales)
> Pour le moment je ne vois qu'une soluce: enregistrer deux lignes
> "anemone" l'une avec 5, l'autre avec 6à10....


(hi hi hi)

--
A horse will do most of its maintenance itself, but it needs fuel even if
you're not using it.
  Réponse avec citation
Vieux 27/03/2008, 10h59   #3
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

alainL a écrit :
> Bonsoir,
> Je cherche un forum en français sur l'utilisation de mysql. Si vous avez
> ça dans vos tablettes... merci à l'avance !


fr.comp.applications.sgbd

> A tout hasard, voilà le prb:
> Je classe des fleurs. L'un des champs "petales" contient le nb de
> petales... (oui !) Mon "enum" offre plusieurs categories : 3,4,5,6à10,
> plus...
> Pour certaines fleurs, je voudrais qu'elles répondent vrai à deux
> catégories... (anemone peut avoir 5 mais aussi 7 ou 8 petales)
> Pour le moment je ne vois qu'une soluce: enregistrer deux lignes
> "anemone" l'une avec 5, l'autre avec 6à10....


Soluce 1 : utilise deux champs nb_petales_min et nb_petales_max. Pour
anémone, tu aura nb_petales_min = 5 et nb_petales_max = 8

Soluce 2 : utilise une table liée pour la description du nombre de
pétales, avec une relation plusieurs à plusieurs entre fleurs et
nombre_petales.

Je ne connais pas assez le domaine pour te dire a priori quelle solution
est la plus appropriée, mais en gros : si une anémone peut avoir 5 ou 7
ou 8 pétales mais *pas* 6, alors utilise la seconde solution. Voit aussi
en fonction des requêtes les plus fréquentes


  Réponse avec citation
Vieux 27/03/2008, 12h53   #4
O.L.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

alainL avait écrit le 26/03/2008 :
> Bonsoir,
> Je cherche un forum en français sur l'utilisation de mysql. Si vous avez ça
> dans vos tablettes... merci à l'avance !
>
> A tout hasard, voilà le prb:
> Je classe des fleurs. L'un des champs "petales" contient le nb de petales...
> (oui !) Mon "enum" offre plusieurs categories : 3,4,5,6à10, plus...
> Pour certaines fleurs, je voudrais qu'elles répondent vrai à deux
> catégories... (anemone peut avoir 5 mais aussi 7 ou 8 petales)
> Pour le moment je ne vois qu'une soluce: enregistrer deux lignes "anemone"
> l'une avec 5, l'autre avec 6à10....


La solution la plus simple serait de changer ton champ ENUM en SET
(hyper facile via PHPMyAdmin).
Ainsi il pourra avoir comme valeur 1 ou plusieurs valeurs de ta liste,
et non plus une seule à la fois.

"Un SET est une chaîne qui peut avoir zéro ou plusieurs valeurs,
chacune doit être choisie dans une liste de valeurs définies lors de la
création de la table. Les valeurs des colonnes SET composées de
plusieurs membres sont définies en séparant celles-ci avec des virgules
(','). Ce qui fait que la valeur d'un membre de SET ne peut contenir
lui même de virgule."

Plus d'infos sur http://dev.mysql.com/doc/refman/5.0/fr/set.html

--
Olivier Ligny


  Réponse avec citation
Vieux 27/03/2008, 17h28   #5
alainL
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

O.L. a écrit :
> alainL avait écrit le 26/03/2008 :
>> Bonsoir,
>> Je cherche un forum en français sur l'utilisation de mysql. Si vous
>> avez ça dans vos tablettes... merci à l'avance !
>>
>> A tout hasard, voilà le prb:
>> Je classe des fleurs. L'un des champs "petales" contient le nb de
>> petales... (oui !) Mon "enum" offre plusieurs categories :
>> 3,4,5,6à10, plus...
>> Pour certaines fleurs, je voudrais qu'elles répondent vrai à deux
>> catégories... (anemone peut avoir 5 mais aussi 7 ou 8 petales)
>> Pour le moment je ne vois qu'une soluce: enregistrer deux lignes
>> "anemone" l'une avec 5, l'autre avec 6à10....

>
> La solution la plus simple serait de changer ton champ ENUM en SET
> (hyper facile via PHPMyAdmin).
> Ainsi il pourra avoir comme valeur 1 ou plusieurs valeurs de ta liste,
> et non plus une seule à la fois.
>
> "Un SET est une chaîne qui peut avoir zéro ou plusieurs valeurs, chacune
> doit être choisie dans une liste de valeurs définies lors de la création
> de la table. Les valeurs des colonnes SET composées de plusieurs membres
> sont définies en séparant celles-ci avec des virgules (','). Ce qui fait
> que la valeur d'un membre de SET ne peut contenir lui même de virgule."
>
> Plus d'infos sur http://dev.mysql.com/doc/refman/5.0/fr/set.html
>

Merci.
Bon sang ! C'est magnifique ça ! J'avais pensé comme Bruno, à créer
deux champs mini et maxi mais là, c'est le top !
Donc, je crée un champ "nb_petales" SET pouvant valoir "4" ou "5" ou
"5,6,7,8" (entrée à la souris ds une liste box, j'aurai 400 fleurs à
marquer)

Et pour la requete:
select from.... where nb_petales like '%nb_petales%' ??
elle sera capable de pêcher le "6" dans "5,6,7,8" ??



--
Alain L

Mon village en Haute Soule : http://jarailet.club.fr
Carnet de voyages: http://jarailet.club.fr/Randobal
  Réponse avec citation
Vieux 27/03/2008, 17h38   #6
CrazyCat
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

alainL wrote:
> Et pour la requete:
> select from.... where nb_petales like '%nb_petales%' ??
> elle sera capable de pêcher le "6" dans "5,6,7,8" ??


Oui mais ce n'est pas "bien", si tu as "16" ou "65", tu auras un retour.
Tu peux utiliser WHERE FIND_IN_SET('6', nb_petales)

--
Réseau IRC Francophone: http://www.zeolia.net
Aide et astuces webmasters : http://www.c-p-f.org
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
  Réponse avec citation
Vieux 27/03/2008, 17h40   #7
O.L.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

alainL a formulé la demande :
> O.L. a écrit :
>> alainL avait écrit le 26/03/2008 :
>>> Bonsoir,
>>> Je cherche un forum en français sur l'utilisation de mysql. Si vous avez
>>> ça dans vos tablettes... merci à l'avance !
>>>
>>> A tout hasard, voilà le prb:
>>> Je classe des fleurs. L'un des champs "petales" contient le nb de
>>> petales... (oui !) Mon "enum" offre plusieurs categories : 3,4,5,6à10,
>>> plus...
>>> Pour certaines fleurs, je voudrais qu'elles répondent vrai à deux
>>> catégories... (anemone peut avoir 5 mais aussi 7 ou 8 petales)
>>> Pour le moment je ne vois qu'une soluce: enregistrer deux lignes "anemone"
>>> l'une avec 5, l'autre avec 6à10....

>>
>> La solution la plus simple serait de changer ton champ ENUM en SET (hyper
>> facile via PHPMyAdmin).
>> Ainsi il pourra avoir comme valeur 1 ou plusieurs valeurs de ta liste, et
>> non plus une seule à la fois.
>>
>> "Un SET est une chaîne qui peut avoir zéro ou plusieurs valeurs, chacune
>> doit être choisie dans une liste de valeurs définies lors de la création de
>> la table. Les valeurs des colonnes SET composées de plusieurs membres sont
>> définies en séparant celles-ci avec des virgules (','). Ce qui fait que la
>> valeur d'un membre de SET ne peut contenir lui même de virgule."
>>
>> Plus d'infos sur http://dev.mysql.com/doc/refman/5.0/fr/set.html
>>

> Merci.
> Bon sang ! C'est magnifique ça ! J'avais pensé comme Bruno, à créer deux
> champs mini et maxi mais là, c'est le top !
> Donc, je crée un champ "nb_petales" SET pouvant valoir "4" ou "5" ou
> "5,6,7,8" (entrée à la souris ds une liste box, j'aurai 400 fleurs à marquer)
>
> Et pour la requete:
> select from.... where nb_petales like '%nb_petales%' ??
> elle sera capable de pêcher le "6" dans "5,6,7,8" ??


Oui tout à fait.

Mais ce n'est pas la seule méthode, cf. la doc :

Normalement, vous exécuterez un SELECT sur une colonne SET en utilisant
l'opérateur LIKE ou la fonction FIND_IN_SET() :

mysql> SELECT * FROM nom_de_table WHERE set_col LIKE '%value%';
mysql> SELECT * FROM nom_de_table WHERE FIND_IN_SET('value',set_col)>0;

Mais ce qui suit fonctionnera aussi :

mysql> SELECT * FROM nom_de_table WHERE set_col = 'val1,val2';
mysql> SELECT * FROM nom_de_table WHERE set_col & 1;

La première requête cherche les lignes qui correspondent exactement. La
seconde ne cherche que les lignes contenant le premier membre du set.

--
Olivier Ligny


  Réponse avec citation
Vieux 27/03/2008, 18h08   #8
alainL
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

CrazyCat a écrit :
> alainL wrote:
>> Et pour la requete:
>> select from.... where nb_petales like '%nb_petales%' ??
>> elle sera capable de pêcher le "6" dans "5,6,7,8" ??

>
> Oui mais ce n'est pas "bien", si tu as "16" ou "65", tu auras un retour.
> Tu peux utiliser WHERE FIND_IN_SET('6', nb_petales)
>



Probleme de structure du set. J'ai beau jongler avec les guillemets,
virgules et espaces, je ne peux entrer que les valeurs contenant un seul
nombre.
Voici la syntaxe de mon set, mySQL(4;0;15) m'a refusé ou modifié pas mal
d'autres.

set('', '0, 1, 2, 3', '4', '5, 6, 7, 8, 9, 10', '6', '11')

4 ou 6 ou 11 sont acceptés et apparaissent dans la table, mais pas "0,1,2,3"

--
Alain L

Mon village en Haute Soule : http://jarailet.club.fr
Carnet de voyages: http://jarailet.club.fr/Randobal
  Réponse avec citation
Vieux 27/03/2008, 18h18   #9
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut syntaxe d'un SET en SQL [Fut : mysql]

[ copie et suivi vers fr.comp.applications.sgbd ]

Le 27/03/2008 18:08, alainL a écrit :
>
> Probleme de structure du set. J'ai beau jongler avec les guillemets,
> virgules et espaces, je ne peux entrer que les valeurs contenant un seul
> nombre.
> Voici la syntaxe de mon set, mySQL(4;0;15) m'a refusé ou modifié pas mal
> d'autres.
>
> set('', '0, 1, 2, 3', '4', '5, 6, 7, 8, 9, 10', '6', '11')
>
> 4 ou 6 ou 11 sont acceptés et apparaissent dans la table, mais pas "0,1,2,3"


1) Tu sembles essayer '0, 1, 2, 3' avant de dire que c'est "0,1,2,3" qui
ne marche pas. As-tu essayé '0,1,2,3' ?

2) Les experts, dont je ne suis pas, sont sur fr.comp.applications.sgbd
vers où je dirige la suite de la discussion.
  Réponse avec citation
Vieux 27/03/2008, 18h31   #10
SAM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: syntaxe d'un SET en SQL [Fut : mysql]

Olivier Miakinen a écrit :
>
> 2) Les experts, dont je ne suis pas, sont sur fr.comp.applications.sgbd
> vers où je dirige la suite de la discussion.


Dommage ... j'étais en train d'apprendre des trucs là.

C'est assez exaspérant de se voir couper les feuilletons comme ça.
Où est donc ma zapette ? que je change de chaine.


--
sm
  Réponse avec citation
Vieux 28/03/2008, 09h55   #11
O.L.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

alainL a présenté l'énoncé suivant :
> CrazyCat a écrit :
>> alainL wrote:
>>> Et pour la requete:
>>> select from.... where nb_petales like '%nb_petales%' ??
>>> elle sera capable de pêcher le "6" dans "5,6,7,8" ??

>>
>> Oui mais ce n'est pas "bien", si tu as "16" ou "65", tu auras un retour.
>> Tu peux utiliser WHERE FIND_IN_SET('6', nb_petales)
>>

>
>
> Probleme de structure du set. J'ai beau jongler avec les guillemets, virgules
> et espaces, je ne peux entrer que les valeurs contenant un seul nombre.
> Voici la syntaxe de mon set, mySQL(4;0;15) m'a refusé ou modifié pas mal
> d'autres.
>
> set('', '0, 1, 2, 3', '4', '5, 6, 7, 8, 9, 10', '6', '11')
>
> 4 ou 6 ou 11 sont acceptés et apparaissent dans la table, mais pas "0,1,2,3"


Non, pour définir le set dans la structure de la table il faut utiliser
la syntaxe suivante :
SET('value1','value2',...)

Donc en entourant chaque valeur possible (hors combinaisons) par des
guillemets :
set('', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11')

Et ensuite quand tu veux faire un UPDATE ou un INSERT, tu fais :
update matable set nb_petales='9' where ...
update matable set nb_petales='3,4,5' where ...
update matable set nb_petales='0,1,2,8,9' where ...


--
Olivier Ligny


  Réponse avec citation
Vieux 28/03/2008, 14h33   #12
alainL
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

O.L. a écrit :
.....................
> Non, pour définir le set dans la structure de la table il faut utiliser
> la syntaxe suivante :
> SET('value1','value2',...)
>
> Donc en entourant chaque valeur possible (hors combinaisons) par des
> guillemets :
> set('', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11')
>
> Et ensuite quand tu veux faire un UPDATE ou un INSERT, tu fais :
> update matable set nb_petales='9' where ...
> update matable set nb_petales='3,4,5' where ...
> update matable set nb_petales='0,1,2,8,9' where ...
>



Ce qui permettrait de modifier les valeurs du SET et de remplacer par
exemple '0' par '0,1,2,3' ???
Si oui, je n'ai pas trouvé la bonne syntaxe:
update maflore set nbpetales='0,1,2,3' where nbpetales='0'
ne marche pas (ni avant en modifiant la structure, ni après saisie du 0 )



--
Alain L

Mon village en Haute Soule : http://jarailet.club.fr
Carnet de voyages: http://jarailet.club.fr/Randobal
  Réponse avec citation
Vieux 28/03/2008, 15h57   #13
O.L.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

alainL a formulé ce vendredi :
> O.L. a écrit :
> ....................
>> Non, pour définir le set dans la structure de la table il faut utiliser la
>> syntaxe suivante :
>> SET('value1','value2',...)
>>
>> Donc en entourant chaque valeur possible (hors combinaisons) par des
>> guillemets :
>> set('', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11')
>>
>> Et ensuite quand tu veux faire un UPDATE ou un INSERT, tu fais :
>> update matable set nb_petales='9' where ...
>> update matable set nb_petales='3,4,5' where ...
>> update matable set nb_petales='0,1,2,8,9' where ...
>>

>
>
> Ce qui permettrait de modifier les valeurs du SET et de remplacer par exemple
> '0' par '0,1,2,3' ???
> Si oui, je n'ai pas trouvé la bonne syntaxe:
> update maflore set nbpetales='0,1,2,3' where nbpetales='0'
> ne marche pas (ni avant en modifiant la structure, ni après saisie du 0 )


Ne marche pas = message d'erreur ? ou alors aucun changement visible ?
Es tu sûr d'avoir bien modifié le type du champ ?
Eventuellement, copie-colle la structure de la table et quelques
données ici.

Ta requête signifie que tu veux que toutes les fleurs proposant 0
pétales proposent désormais le choix entre 0, 1, 2, ou 3 pétales.

Dans mon exemple, je pensais plus attribuer un choix possible à une
fleur donnée :
update matable set nb_petales='3,6,9' where nom='rose'
=> pour la fleur 'rose', le choix de l'acheteur sera désormais possible
entre 3, 6, et 9 pétales.

--
Olivier Ligny


  Réponse avec citation
Vieux 28/03/2008, 18h25   #14
alainL
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

O.L. a écrit :
> alainL a formulé ce vendredi :
>> O.L. a écrit :
>> ....................
>>> Non, pour définir le set dans la structure de la table il faut
>>> utiliser la syntaxe suivante :
>>> SET('value1','value2',...)
>>>
>>> Donc en entourant chaque valeur possible (hors combinaisons) par des
>>> guillemets :
>>> set('', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11')
>>>
>>> Et ensuite quand tu veux faire un UPDATE ou un INSERT, tu fais :
>>> update matable set nb_petales='9' where ...
>>> update matable set nb_petales='3,4,5' where ...
>>> update matable set nb_petales='0,1,2,8,9' where ...
>>>

>>
>>
>> Ce qui permettrait de modifier les valeurs du SET et de remplacer par
>> exemple '0' par '0,1,2,3' ???
>> Si oui, je n'ai pas trouvé la bonne syntaxe:
>> update maflore set nbpetales='0,1,2,3' where nbpetales='0'
>> ne marche pas (ni avant en modifiant la structure, ni après saisie du
>> 0 )

>
> Ne marche pas = message d'erreur ? ou alors aucun changement visible ?


pas de changement.
> Es tu sûr d'avoir bien modifié le type du champ ?

voici un bout de la structure avant (ou après) requete
CHAMP TYPE VAL
nervures enum('', 'parallèles', 'simples', 'lobées')
nbpetales set('', '1', '4', '5', '11')
petales enum('', 'identiques', 'différents')
> Eventuellement, copie-colle la structure de la table et quelques données
> ici.
>
> Ta requête signifie que tu veux que toutes les fleurs proposant 0
> pétales proposent désormais le choix entre 0, 1, 2, ou 3 pétales.



>
> Dans mon exemple, je pensais plus attribuer un choix possible à une
> fleur donnée :
> update matable set nb_petales='3,6,9' where nom='rose'
> => pour la fleur 'rose', le choix de l'acheteur sera désormais possible
> entre 3, 6, et 9 pétales.


Je crée ma table en entrant les critères de chq fleur.
Le visiteur qui veut déterminer une fleur entre ses critères et la table
renvoie les fleurs correspondant.
Ca marche ici (mais sans nb pétales!):
http://jarailet.club.fr/herbier/choixcriteres.htm

le problème vient de certaines fleurs qui peuvent avoir un nb de pétales
variable ! Il me faudrait donc un set qui accepterait
0,1,2,3
4
5, 6,7,8,9,10
11

Mais je crois que je vais faire deux champs nb mini et nb maxi et un
between (tiens, au fait , un between 4 et 4 renvoie bien 4 ? )

--
Alain L

Mon village en Haute Soule : http://jarailet.club.fr
Carnet de voyages: http://jarailet.club.fr/Randobal
  Réponse avec citation
Vieux 28/03/2008, 18h27   #15
Olivier Miakinen
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

Le 28/03/2008 18:25, alainL a écrit :
>>>
>>> update maflore set nbpetales='0,1,2,3' where nbpetales='0'

>
> CHAMP TYPE VAL
> nervures enum('', 'parallèles', 'simples', 'lobées')
> nbpetales set('', '1', '4', '5', '11')


On dirait que ton champ nbpetales n'est pas prévu pour recevoir les
valeurs 0, 2 et 3.
  Réponse avec citation
Vieux 28/03/2008, 18h53   #16
SAM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: syntaxe d'un SET en SQL [Fut : mysql]

alainL a écrit :
>
> La solution de créer une seconde table ne me semble pas bien pratique
> (mais je suis newbee!)...


Je n'y connais rien mais ... je crois bien que c'est comme ça que ça
fonctionne.
Du moins si on retrouve souvent le même nombre de pétales.
Du moins si un nombre de pétales peut être associé à un genre, une famille.
Du moins si on veut pouvoir compléter ses tables (rajouter la famille
relative au nombre de pétales)

table fleurs (id, nom, genre, description, images(s), pétales)

table pétales : (id, nbre (chiffres), nbre (lettres), genre(s)?
1 | 5,7 | 5 ou sept pétages
2 | 9 | 9 pétales
3 | 9,11| 9 ou 11 pétales
3 | 7-11| de 9 à 11 pétales

et pour la table 'fleur' à la colonne pétales on donne l'id kivabien de
la table des pétales (ou les id kivontbien ?)

> Je crois que je vais faire deux champs: un min
> et un max et utiliser between...


Ben ... j'avais compris qu'on pouvait avoir des fleurs à 5, 7 ou 9
pétales. Si tu dis qu'elle a entre 5 et 9 pétales ce sera inexact.

Comment feras-tu une recherche de toutes les fleurs qui ont 6 pétales ?
La recherche entre un mini et un maxi va te donner les 400 fiches (ou
pas loin). Autant ne pas ouvrir une(des) colonne(s) pour le nbre de
pétales et le taper en dur dans chaque descriptif.

Et pour 'genre' dans 'fleur' hop! une table pour la description de
chaque genre
genre : nom commun, latin, descriptif sommaire, détaillé, annecdotes, ...
Dans la table 'fleur' à 'genre' tu n'indiques que le nom commun.
Après, avec ça et en passant par la table 'genre', chaque fiche de fleur
à faire afficher pourra se faire automatiquement et même avec la totale
si tu veux.

Pour images ce peut être pareil :
id (celui de la fleur), miniature, grande-photo, vue1, vue2, ...

> Et c'est reparti pour 400 X 2 saisies :-(((
> A moins qu'une âme charitable de ce nouveau forum ne me trouve la
> solution miracle :-)))


si c'est pour juste faire une table comme on pourrait faire un tableau
de tableur, c'est sous employer le côté sgbd de MySql.

--
sm
  Réponse avec citation
Vieux 28/03/2008, 19h05   #17
alainL
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

Olivier Miakinen a écrit :
> Le 28/03/2008 18:25, alainL a écrit :
>>>> update maflore set nbpetales='0,1,2,3' where nbpetales='0'

>> CHAMP TYPE VAL
>> nervures enum('', 'parallèles', 'simples', 'lobées')
>> nbpetales set('', '1', '4', '5', '11')

>
> On dirait que ton champ nbpetales n'est pas prévu pour recevoir les
> valeurs 0, 2 et 3.


J'ai en gros quatre types de petales. Un groupe ou je vais loger
'0,1,2,3' pétales / un gr pour les fleurs à 4 (sympas celles_là !) /un
gr pour '5,6,7,8,9,10' et un dernier gr ou je rentrerai '11' mais qui
en fait accueillera tout ce qui est > 10
Donc, si l'update proposé par OL marche, je vais remplacer 1 par
0,1,2,3..et '5' par '5,6,7,8,9,10'

--
Alain L

Mon village en Haute Soule : http://jarailet.club.fr
Carnet de voyages: http://jarailet.club.fr/Randobal
  Réponse avec citation
Vieux 28/03/2008, 19h06   #18
SAM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

alainL a écrit :
>
> le problème vient de certaines fleurs qui peuvent avoir un nb de pétales
> variable ! Il me faudrait donc un set qui accepterait
> 0,1,2,3
> 4
> 5, 6,7,8,9,10
> 11


Meu non ... et si je n'm'égare pas :

c'est à la colonne 'petales de la table 'fleur'
que tu vas "setter" les différents niveaux de la table 'pétale' qui vont
bien

pétales :
id | nbre | genre associé
1 | 5 | renoncules, shmilblic, ...
2 | 6 | je sais pas koi
3 | 5,7,9 | anémoninadées

fleurs
id | nom | petales | etc etc
1 | truc | 2, 3 | <-- donc 5,6,7 ou 9 pétales


c'est un peu un casse-tête à mettre en place
mais ... comme c'est pratique après ! :-)


--
sm
  Réponse avec citation
Vieux 28/03/2008, 19h34   #19
alainL
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: syntaxe d'un SET en SQL [Fut : mysql]

SAM a écrit :
> alainL a écrit :

..................
>> Je crois que je vais faire deux champs: un min et un max et utiliser
>> between...

>
> Ben ... j'avais compris qu'on pouvait avoir des fleurs à 5, 7 ou 9
> pétales. Si tu dis qu'elle a entre 5 et 9 pétales ce sera inexact.
>
> Comment feras-tu une recherche de toutes les fleurs qui ont 6 pétales ?
> La recherche entre un mini et un maxi va te donner les 400 fiches (ou
> pas loin). Autant ne pas ouvrir une(des) colonne(s) pour le nbre de
> pétales et le taper en dur dans chaque descriptif.
>

..................

Ma table contient
NOM COULEUR(listbox)FEUILLES(listbox)NBminiPétales Nbmaxpetales
anemone blanc simples 5 10
parnassie blanc simple 5 5
arabette blanc simple 4 4
asphodèle blanc nervures parallèles 6 6

L'utilisateur qui aura à identifier une anémone et qui entrera
blanc/simple/6 obtiendra anémone (et toutes les autres blanches,
feuilles simples ayant de 5 à 10 petales mais il y a d'autres critères :-)))

le principe fonctionne déjà mais sans le critère "nb petales"
http://jarailet.club.fr/herbier/choixcriteres.htm



--
Alain L

Mon village en Haute Soule : http://jarailet.club.fr
Carnet de voyages: http://jarailet.club.fr/Randobal
  Réponse avec citation
Vieux 29/03/2008, 10h28   #20
O.L.
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: mysql

alainL a pensé très fort :
> O.L. a écrit :
>> Es tu sûr d'avoir bien modifié le type du champ ?

> voici un bout de la structure avant (ou après) requete
> CHAMP TYPE VAL
> nervures enum('', 'parallèles', 'simples', 'lobées')
> nbpetales set('', '1', '4', '5', '11')
> petales enum('', 'identiques', 'différents')


Arg ! Ton SET est mal défini !
Là il ne peut accepter que les valeurs : 1, 4, 5, et 11 pétales ...
Il faut le redéfinir en mettant :
set('', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11')

--
Olivier Ligny


  Réponse avec citation
Vieux 29/03/2008, 12h18   #21
SAM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: syntaxe d'un SET en SQL [Fut : mysql]

alainL a écrit :
> SAM a écrit :
>
> Ma table contient
> NOM COULEUR(listbox)FEUILLES(listbox)NBminiPétales Nbmaxpetales
> anemone blanc simples 5 10
> parnassie blanc simple 5 5
> arabette blanc simple 4 4
> asphodèle blanc nervures parallèles 6 6
>
> L'utilisateur qui aura à identifier une anémone et qui entrera
> blanc/simple/6 obtiendra anémone (et toutes les autres blanches,
> feuilles simples ayant de 5 à 10 petales mais il y a d'autres critères
> :-)))


Parce que tu te limites là à l'identification par un certain nombre de
repères.
Ta table ne sert pas à donner la fiche de l'anémone
ou alors elle sera fausse puisqu'une anémone ne peut avoir que 5, 7 ou 9
pétales

> le principe fonctionne déjà mais sans le critère "nb petales"
> http://jarailet.club.fr/herbier/choixcriteres.htm


Si j'ai bien compris c'est un simple tableau.
Je me demande si c'est bien la peine de déranger MySql uniquement pour
ça. (un simple fichier texte pourrait suffire me semble-ce).

Mébon, peut-être ça servira pour développer les pages personnalisées des
fleurs ?

Pour le résultat de la recherche ce serait sympa que la tête de colonne
reste fixe qu'on puisse voir à quoi correspondent :
simples différents séparés

En tous cas bravo pour ce site très riche.

--
sm
  Réponse avec citation
Vieux 29/03/2008, 14h55   #22
alainL
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: syntaxe d'un SET en SQL [Fut : mysql]

SAM a écrit :
> alainL a écrit :
>> SAM a écrit :
>>
>> Ma table contient
>> NOM COULEUR(listbox)FEUILLES(listbox)NBminiPétales Nbmaxpetales
>> anemone blanc simples 5 10
>> parnassie blanc simple 5 5
>> arabette blanc simple 4 4
>> asphodèle blanc nervures parallèles 6 6
>>
>> L'utilisateur qui aura à identifier une anémone et qui entrera
>> blanc/simple/6 obtiendra anémone (et toutes les autres blanches,
>> feuilles simples ayant de 5 à 10 petales mais il y a d'autres critères
>> :-)))

>
> Parce que tu te limites là à l'identification par un certain nombre de
> repères.
> Ta table ne sert pas à donner la fiche de l'anémone
> ou alors elle sera fausse puisqu'une anémone ne peut avoir que 5, 7 ou 9
> pétales


C'était un exemple incomplet(sorry) : elle peut avoir de 5 à 12 pétales
(donc 5<= nb petales <= 12 ).... tu vois comment je vais régler la chose !

>
>> le principe fonctionne déjà mais sans le critère "nb petales"
>> http://jarailet.club.fr/herbier/choixcriteres.htm

> Si j'ai bien compris c'est un simple tableau.



Suivant les critères entrés, on va obtenir un choix plus ou moins large
présenté dans un tableau mais d'où seront exclues les fleurs d'une autre
couleur, à feuilles différentes, etc...
Bien sûr, je ne peux pas entrer tous les critères pour une détermination
exacte (de même qu'à 4 pattes dans les rochers, ma flore sous le nez, je
suis encore assez souvent dans le doute !)
C'est pour tenter de réduire le nombre de propositions renvoyées que
j'essaie d'ajouter le nb de pétales.

> Je me demande si c'est bien la peine de déranger MySql uniquement pour
> ça. (un simple fichier texte pourrait suffire me semble-ce).


Comment faire cette requête sur un fichier texte ??

$sql = "SELECT nom, lien, vignette, fleur, nervures, petales, corolle,
couleur, lumiere, terrain, altitude FROM floresoule1 WHERE fleur like
'%$fleur%' and nervures like '%$nervures%' and petales like '%$petales%'
and corolle like '%$corolle%' and couleur like '%$couleur%' and lumiere
like '%$lumiere%' and terrain like '%$terrain%' and altitude like
'%$altitude%' ORDER BY nom";



>
> Mébon, peut-être ça servira pour développer les pages personnalisées des
> fleurs ?


C'est fait et accessible par un lien inclus dans le tableau renvoyé.
>
> Pour le résultat de la recherche ce serait sympa que la tête de colonne
> reste fixe qu'on puisse voir à quoi correspondent :
> simples différents séparés


Je vais essayer... après avoir compté mes pétales :-))
>

Merci pour ton intérêt à mon problème.

--
Alain L

Mon village en Haute Soule : http://jarailet.club.fr
Carnet de voyages: http://jarailet.club.fr/Randobal
  Réponse avec citation
Vieux 29/03/2008, 20h41   #23
SAM
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: syntaxe d'un SET en SQL [Fut : mysql]

alainL a écrit :
> SAM a écrit :
>> Ta table ne sert pas à donner la fiche de l'anémone
>> ou alors elle sera fausse puisqu'une anémone ne peut avoir que 5, 7 ou 9
>> pétales

>
> C'était un exemple incomplet(sorry) : elle peut avoir de 5 à 12 pétales
> (donc 5<= nb petales <= 12 ).... tu vois comment je vais régler la chose !


C'était un exemple, peut importe lequel ni si ça concerne l'anémone.
Exemple où le nbre de pétales est déterminé tel que 5, 7 ou 9

mébon, puisqu'en fait ça ne semble plus être de mise.

>>> http://jarailet.club.fr/herbier/choixcriteres.htm

>> Si j'ai bien compris c'est un simple tableau.

>
> Suivant les critères entrés, on va obtenir un choix plus ou moins large
> présenté dans un tableau


Non, je voulais dire :
- les données sont dans une simple table
- ce qui est la même chose qu'un tableau de tableur
- et peut être réduit à un simple fichier texte (comme *.cvs)

> C'est pour tenter de réduire le nombre de propositions renvoyées que
> j'essaie d'ajouter le nb de pétales.


Le nombre de pétales ne vient qu'en éclairage de l'exploitation d'une
table. (comme on n'y connait rien en fleurs de ttes façons :-) )

>> Je me demande si c'est bien la peine de déranger MySql uniquement pour
>> ça. (un simple fichier texte pourrait suffire me semble-ce).

>
> Comment faire cette requête sur un fichier texte ??


Boudiou ! avec la fonction foreach tu peux faire beaucoup :-)
Mais là il suffit de lire le fichier ligne à ligne et de voir que toutes
les conditions y soient (grosso modo le search de chaque mot-clé dans la
ligne soit à true) puis de passer une routine sur la ligne pour qu'elle
s'écrive en TR de table html.
Bon, un poil plus compliqué maintenant avec le nim-max des pétales qui
va sans doute nécessiter 2 ou 3 lignes de plus (et allonger le temps de
traitement).

>> Mébon, peut-être ça servira pour développer les pages personnalisées des
>> fleurs ?

>
> C'est fait et accessible par un lien inclus dans le tableau renvoyé.


J'avais vu mais ce n'est pas ce que je voulais dire.
Comme tes fichiers de fleurs étaient sans doute pré-existants ça ne fait
que pointer sur eux, non ?
Je parlais de se passer de ces fichiers et qu'au clic le php aille
re-créer la fiche (ou fichier html) de la fleur (possiblement avec un
choix par l'utilisateur du détail de cette fiche).
Sur la fiche de la fleur, par le biais d'une autre table (celle des
randos) ou de la même complétée, hop! la liste de tes chemins où tu l'as
vue.

>> Pour le résultat de la recherche ce serait sympa que la tête de colonne
>> reste fixe qu'on puisse voir à quoi correspondent :
>> simples différents séparés

>
> Je vais essayer... après avoir compté mes pétales :-))


He bé ! on n'est pas rendu !
(s'il faut aller refaire tous les chemins de la Soule par toutes saisons
recompter à 4 pattes les pétales) :-)

--
sm
  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 14h21.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives