Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

mysql

22 réponses
Avatar
alainL
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

10 réponses

1 2 3
Avatar
alainL
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
Avatar
O.L.
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
Avatar
alainL
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
Avatar
Olivier Miakinen
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.
Avatar
SAM
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
Avatar
alainL
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
Avatar
SAM
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
Avatar
alainL
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
Avatar
O.L.
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
Avatar
SAM
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
1 2 3