A voir également:
- Numéroter les lignes en fonction de la date
- Fonction si et - Guide
- Site de vente en ligne particulier - Guide
- Comment numéroter les pages sur word - Guide
- Partage de photos en ligne - Guide
- Aller à la ligne excel - Guide
6 réponses
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
219
12 janv. 2013 à 18:11
12 janv. 2013 à 18:11
Salut,
A quoi correspond exactement votre numérotation?
Je vois bien votre champ "IDJ" mais je ne comprend pas le rapport avec les dates.
A quoi correspond exactement votre numérotation?
Je vois bien votre champ "IDJ" mais je ne comprend pas le rapport avec les dates.
Bonjour et merci encore pour votre réponse,
je m'excuse si ma demande n'était pas claire;
je voudrai que le champ IDJ on trouve un nombre de 1 à n pour la même valeur dans le champ DATEDUJOUR
c'est à dire que le champ IDJ s'auto-incremente de 1 tant que le champ DATEDUJOUR a la même valeur. Dès que le champ DATEDUJOUR change de valeur, le champ IDJ se reinitialise en prenant la valeur 1.
Merci encore de votre réponse ,
je reste à votre écoute.
je m'excuse si ma demande n'était pas claire;
je voudrai que le champ IDJ on trouve un nombre de 1 à n pour la même valeur dans le champ DATEDUJOUR
c'est à dire que le champ IDJ s'auto-incremente de 1 tant que le champ DATEDUJOUR a la même valeur. Dès que le champ DATEDUJOUR change de valeur, le champ IDJ se reinitialise en prenant la valeur 1.
Merci encore de votre réponse ,
je reste à votre écoute.
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
219
14 janv. 2013 à 11:50
14 janv. 2013 à 11:50
Ok, je vois en gros ce que vous voulez faire mais comme je n'ai pas le contexte exacte, ma réponse va être aléatoire...
En gros, avant l'enregistrement en BD il faut comparer la date du jour avec les dates enregistrées en BD. Si une ou plusieurs dates identiques existent, il faut sélectionner la dernière pour récupérer la valeur du champ "IDJ" pour enfin ajouter "1" sur l'enregistrement en cours.
En gros et si je ne me plante pas :
En gros, avant l'enregistrement en BD il faut comparer la date du jour avec les dates enregistrées en BD. Si une ou plusieurs dates identiques existent, il faut sélectionner la dernière pour récupérer la valeur du champ "IDJ" pour enfin ajouter "1" sur l'enregistrement en cours.
En gros et si je ne me plante pas :
$variabledate = '2012-01-17'; $cherche = mysql_query("SELECT MAX(IDJ) FROM TABLE WHERE Datedujour = '".mysql_real_escape_string($variabledate)."'"); $data = mysql_fetch_array($cherche); //Si rien if(mysql_num_rows($cherche) == 0) { //On enregistre en bd et le champ IDJ vaut 1 } //si quelque chose else{ //On enregistre en BD et le champ IDJ vaut $date+1 }
Bonjour,
je reformule plus clairement ma question, dans l'espoir d'être mieux compris et mieux aidé
ReBonjour ,
j'ai conçu un registre de rendez-vous pour noter les rendez-vous de
mes patients. il comprend les champs;
id index , auto-increment
date du jour date
sexe M ou F
age 0 à 150
je voudrais à l'aide d'une requête Mysql, écrire une requête qui me
donne l'ordre de passage de mes patients pour chaque journée de
consultation.
C'est à dire pour chaque journée de consultation, le premier patient
qui a pris rendez-vous portera le numero 1, le deuxième portera le
numero 2 ainsi de suite.
Avec la requête Mysql, je compte obtenir les champs suivants:
id index , auto-increment
date du jour date
ordre de passage 1 à n
sexe M ou F
age 0 à 150
Pouvez vous m'accorder votre aide pour écrire cette requête?
Merci par avance.
je reformule plus clairement ma question, dans l'espoir d'être mieux compris et mieux aidé
ReBonjour ,
j'ai conçu un registre de rendez-vous pour noter les rendez-vous de
mes patients. il comprend les champs;
id index , auto-increment
date du jour date
sexe M ou F
age 0 à 150
je voudrais à l'aide d'une requête Mysql, écrire une requête qui me
donne l'ordre de passage de mes patients pour chaque journée de
consultation.
C'est à dire pour chaque journée de consultation, le premier patient
qui a pris rendez-vous portera le numero 1, le deuxième portera le
numero 2 ainsi de suite.
Avec la requête Mysql, je compte obtenir les champs suivants:
id index , auto-increment
date du jour date
ordre de passage 1 à n
sexe M ou F
age 0 à 150
Pouvez vous m'accorder votre aide pour écrire cette requête?
Merci par avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
219
Modifié par tryan44 le 15/01/2013 à 08:35
Modifié par tryan44 le 15/01/2013 à 08:35
SELECT * FROM VOTRETABLE WHERE Datedujour=$variabledate ORDER BY IDJ ASC
$variabledate doit correspondre à la date du jour tel qu'enregistré en BD.
Si vous aviez demandé comment faire un trie sur votre table en fonction de la date du jour avec un classement croissant sur le champ IDJ, j'aurais tout de suite comprit.
Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire!
ovillemain
Messages postés
2
Date d'inscription
mercredi 4 avril 2012
Statut
Membre
Dernière intervention
21 juillet 2015
Modifié par ovillemain le 10/07/2014 à 16:21
Modifié par ovillemain le 10/07/2014 à 16:21
Bonjour,
Voici une solution 100% MySQL qui répond au problème posé... il y a 18 mois.
Pour info, ça utilise les "variables utilisateurs" de MySQL.
Documentation : http://dev.mysql.com/doc/refman/5.0/fr/variables.html
Important : dans la sous-requête, il ne faut pas changer l'ordre des champs "Datedujour" et "IDJ" !
Table et données pour tester :
Voici une solution 100% MySQL qui répond au problème posé... il y a 18 mois.
Pour info, ça utilise les "variables utilisateurs" de MySQL.
Documentation : http://dev.mysql.com/doc/refman/5.0/fr/variables.html
-- Réinitialisation si requête déjà exécutée depuis l'ouverture de la connexion SET @jourPrec = NULL; SELECT r.ID, r.Datedujour, NumeroJour.IDJ, r.NomduPatient, r.Age, r.Sexe FROM rendezvous r JOIN ( SELECT ID, CASE WHEN @jourPrec = Datedujour THEN @IDJ := @IDJ + 1 ELSE @IDJ := 1 END AS IDJ, @jourPrec := Datedujour FROM rendezvous ORDER BY DateDuJour, ID ) NumeroJour ON NumeroJour.ID = r.ID ORDER BY r.DateDuJour, r.ID
Important : dans la sous-requête, il ne faut pas changer l'ordre des champs "Datedujour" et "IDJ" !
Table et données pour tester :
CREATE TABLE rendezvous ( ID INT UNSIGNED NOT NULL AUTO_INCREMENT, Datedujour DATE NOT NULL, NomduPatient VARCHAR(255) NOT NULL, Age TINYINT UNSIGNED NOT NULL, Sexe ENUM('M', 'F') NOT NULL, PRIMARY KEY (ID) ); INSERT INTO rendezvous (ID, Datedujour, NomduPatient, Age, Sexe) VALUES (1, '2012-01-11', 'D', 22, 'M'), (2, '2012-01-11', 'Z', 8, 'M'), (3, '2012-01-15', 'C', 12, 'F'), (4, '2012-01-17', 'A', 20, 'M'), (5, '2012-01-17', 'S', 52, 'F'), (6, '2012-01-17', 'F', 63, 'F');