Vous n'êtes pas identifié(e).
Pages :: 1
Bonsoir à tous,
Je cherche depuis quelque temps la solution à ce problème,
Ma requête modifie plusieurs lignes grâce à une chaîne
j’aimerai qu'a chaque inscription il rajoute 1 à la variable $num_ins
exemple : première ligne modifiée 1-inscription, deuxième 2-inscription etc..... avec un maximum de 5-inscription
voila ma requête
Voila, merci de votre aide
et bonne soirée
Hors ligne
Saluton,
Tu peux reformuler le besoin de manière intelligible parce que là je n'ai strictement rien compris.
Un jeu d'essai avec les valeurs de départ et les valeurs attendues serait assez éclairant, me semble-t-il.
@mike.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour @mike et merci de ta réponse
Je mets à jour une table avec UPDATE et une chaîne des numéros de ligne (id) avec un maximum de 5 lignes a la fois
exemple :
$query = 'UPDATE panier_espace_adherent SET nbre_inscription = "1-inscription" WHERE id IN 2,5,8,9';
Cela fonctionne très bien.
Sauf que j'aimerai que dans le champs (nbre_inscription) il y est :
ligne 2 = 1-inscription
ligne 5 = 2-inscription
ligne 8 = 3-inscription
ligne 9 = 4-inscription
Bonne journée
Seb
Hors ligne
Bonjour,
Ce que vous voulez faire est tellement capillotracté (pour reprendre une expression à notre ami MK) que vous-même n'avez pas compris ce que vous avez fait.
Donc exprimé en vos termes il vous faudrait faire :
Mais pour cela faut-il encore que nbre_inscription soit du type integer et non varchar, car comme le nom de colonne associé l'indique il s'agit d'un nombre et pas d'une chaîne.
Maintenant vous avez un sérieux problème de sémantique et de modèle!!! : Comment un nombre d'inscription peut se retrouver dans un panier adhérent? avec votre "WHERE id IN" qui appelle une énumération d'id, comment pouvez-vous mettre à jour le panier d'un adhérent connecté en modifiant le panier de plusieurs adhérents???
Je vous invite sérieusement à revoir la conception de votre modèle de données.
Attention aussi une clé primaire d'entité n'a rien à voir avec un id de ligne au niveau sémantique.
Cordialement,
Jc.
Dernière modification par Jc (28-07-2014 09:03:22)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Non-obstant la pertinentissime soufflante que vient de t'administrer l'ami Jc, essaye peut-être ceci, juste pour voir (et que je n'aie pas cogité pour des prunes) :
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour JC,
Je m'occupe d'une association sportive et du site internet(en construction), le champ (nbre_inscription) sert par la suite au calcul de la cotisation annuelle,
car le tarif est dégressif avec plusieurs inscriptions (max 5) de la même famille en même temps.
Je peux très bien inscrire dans ce champ que du numérique.
En amont j'affecte un code client commun à toute la famille
Je veux juste l'attribution d'un numéro croissant de 1 dans le champs (nbre_inscription) au moment de la validation des inscriptions par mes soins.
Cordialement
Seb
Hors ligne
Je prends note des remarques de JC et Merci @mike pour ta proposition
Cela fonctionne très bien dans cette configuration quand le numéro inscription correspond au numéro de la ligne id
il me marque (2-inscription sur la ligne 2 - 5-inscription sur la ligne 5) etc
Alors que j'aimerai juste qu'il me marque (1-inscription sur la ligne 2 / 2-inscription sur la ligne 5 / 3-inscription sur la ligne 8) etc,
il peut avoir jusqu'a 5 lignes lors de la validation par mes soins des demandes d'inscriptions.
Je veux juste l'attribution d'un numéro croissant de 1 en partant de 1 dans le champs (nbre_inscription).
Ce champ servira par la suite au calcul pour la même famille de la cotisation le 1 paye temps, le 2 un peu moins, le 3 encore moins et un si de suite le 5 paye pas.
Merci à vous
Seb
Hors ligne
Bonjour,
Wow voilà que de la complication se rajoute à de la complication..
On arrive à un stade où vous seul êtes en mesure de comprendre ce que vous dites. Nous ne sommes pas des devins, et j'ai bien peur que cette phrase
Ce champ servira par la suite au calcul pour la même famille de la cotisation le 1 paye temps, le 2 un peu moins, le 3 encore moins et un si de suite le 5 paye pas.
vienne de nous donner le coup de grâce.
Jc.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Ouais Jc, je te comprends.
@PandadeMios. Bizarre, FIND_IN_SET, est censée retourner non pas l'occurrence trouvée dans le jeu (SET) mais sa position (offset) dans le jeu ou 0 si elle n'y est pas trouvée.
Donc pour '2' elle devrait retourner 1 pour '5' =>2, pour '8'=>3 et pour '9'=>4. Ce qui est bien ce que tu souhaites.
FIND_IN_SET(str,strlist)
Retourne une valeur de 1 à N si la chaîne str se trouve dans la liste strlist constituée de N chaînes. Une liste de chaîne est une chaîne composée de sous-chaînes séparées par une virgule ‘,’. Si le premier argument est une chaîne constante et le second, une colonne de type SET, la fonction FIND_IN_SET() est optimisée pour utiliser une recherche binaire très rapide. Retourne 0 si str n'est pas trouvé dans la liste strlist ou si la liste strlist est une chaîne vide. Retourne NULL si l'un des arguments est NULL. Cette fonction ne fonctionne pas correctement si le premier argument contient une virgule ‘,’ :
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
-> 2
Maintenant, quant à la pertinence de la démarche, je reste aussi atterré que l'ami Jc.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bonjour,
Je vais apporter un complément d'information qui va expliquer aussi pourquoi je comprends encore moins ce que le FIND_IN_SET pourrait apporter comme solution au problème posé.
Pour ce faire, et avant de parler de la méthode FIND_IN_SET, je pense qu'il est important de comprendre que la méthode repose sur la structure d'une colonne de type SET qui est une colonne gérée en binaire et qui accepte la gestion de valeur multiples.
Ainsi pour une colonne de type SET acceptant les valeurs ('2,5,8,9') les indexs de stockage en interne seront : 2=>1, 5=>2, 8=>4, 9=>8 donc 1,2,4,8 et non pas 1,2,3,4 (on est en binaire donc en puissance de 2 en décimal). Pourquoi? car cela permet de stocker les associations. Ainsi si la colonne a pour valeur le doublet ('2,5'), la colonne stockera sur l'index 3 (1+2), et si le doublet a pour valeur ('5,8'), l'index sera de 6 (4+2).
Donc pour moi le fait que FIND_IN_SET ne résolve pas le problème posé me rassure quelque part.. mais bon cela n'aide pas à comprendre le modèle, la logique et la structure de données de notre ami.
++
PS: Plus précisément on est sur une suite géométrique de raison 2 et de premier terme 0.
Dernière modification par Jc (29-07-2014 09:50:37)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bon OK, mais l'exemple de la doc est vraiment mal choisi.
Et comme ça
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Re,
J'ai reçu quelques autres témoignages. Bizarrement, le mr a évité d'envoyer ça aux modérateurs, comme par hasard...
Je suis en train de chercher quelles suites donner a ce problème.
@+
Join online Testking security+ certification and testking to pass exam istqb certification in first try. Our best quality and Northwestern University guide you well for real exam.
Hors ligne
Pages :: 1