Ce qui surprend un peu au début avec les objets de classe DateTime, c'est qu'une méthode comme modify les modifie directement par référence. Alors qu'on est plus habitués à manipuler des méthodes qui retournent des valeurs.
Oh non, je n'ai rien inventé lol... C'est cette idée : https://www.php.net/manual/fr/dateti...s.relative.php
Merci pour les commentaires et je ne bloque plus. Je ne comprenais pas par exemple la méthode modify. Les paramètres que tu lui passes (comme last day of -1 month, last day of next month ou +1 month), ça s'invente pas. Tu les trouve dans la doc ?
Envoyé par laurentSc Merci Dendrite pour ces 2 fonctions. Pourrais-tu rajouter des commentaires pour les expliquer car je suis loin d'être familier avec le type DateTime et si on essaye de lire la doc, il y a plein de trucs à lire qui ne servent à rien ici. Bref, j'ai abandonné... Bonjour Laurent, J'ai ajouté mes explications, mais elles tiennent plus de la logique que de la façon de manipuler la classe DateTime, que je trouve moi extrêmement intuitive. Tu bloques sur quoi ?
Merci Dendrite pour ces 2 fonctions. Pourrais-tu rajouter des commentaires pour les expliquer car je suis loin d'être familier avec le type DateTime et si on essaye de lire la doc, il y a plein de trucs à lire qui ne servent à rien ici. Bref, j'ai abandonné...
Bonjour X3, La requête complète est dans le 1c) Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part 123456789101112select distinct h.personne_id, p.civ, if(p.nom_usage is NULL, p.nom_naissance, p.nom_usage) as nom, p.prenom, timestampdiff(year, p.naissance,h.jour) as age, p.mail, h.jour, sec_to_time(sum(time_to_sec(timediff(h.fin,h.debut)))) as cumul from horaire__saisie h inner join horaire__personne p on h.personne_id=p.id group by h.personne_id, h.jour order by nom,p.prenom, h.jour desc J'expliquais simplement dans le 1b) (à l'avance donc) la ligne 3, qui permet de donner le bon nom aux personnes mariées qui ont fait le choix de prendre un nom d'époux-épouse. On est d'autant plus confronté à ça que les gens divorcent et reprennent leur nom de naissance parfois. Pour la suite de ta question : non. Ce billet de blog était une problématique purement SQL, et je n'ai eu aucun développement web réel à faire autour. Tu vas devoir développer toi-même. As-tu déjà de l'expérience ? Si oui, une fois ta base bien modélisée, ça ne sera pas bien méchant. Un formulaire HTML et un traitement PHP pour saisir les dates et les insérer dans ta base, une requête SQL inspirée de ce billet pour afficher le temps cumulé. Mais n'hésite pas à aller sur le forum PHP avec les bouts de code qui te coincent quand tu développeras la partie PHP. Bon courage !
select distinct h.personne_id, p.civ, if(p.nom_usage is NULL, p.nom_naissance, p.nom_usage) as nom, p.prenom, timestampdiff(year, p.naissance,h.jour) as age, p.mail, h.jour, sec_to_time(sum(time_to_sec(timediff(h.fin,h.debut)))) as cumul from horaire__saisie h inner join horaire__personne p on h.personne_id=p.id group by h.personne_id, h.jour order by nom,p.prenom, h.jour desc
Bonjour Dendrite, Je débute en php et je souhaite coder une interface en PHP/MySql permettant la saisie de temps sur un projet, et je voulais savoir au niveau du point 1.b), le " if(nom_usage is not null, nom_usage, nom_naissance) as nom " ou l'avez-vous ajouté svp, car je n'ai pas bien compris ? Et avez-vous coder en PHP afin d'avoir une interface où vous pouvez saisir le temps d'activité et qu'ensuite cela affiche une interface où nous pouvons saisir le temps effectué en fonction d'une personne ? Merci d'avance !
Hop, hop, hop, j'ai discuté avec mon mari... et longuement réfléchi. J'oublie totalement le concept de rôle memo-writer et memo_reader... Dans quoi j'allais m'embarquer !!! Toute personne qui s'inscrit a le droit d'écriture et de lecture sur tous ses memos. Et puis c'est tout. Après, c'est aux gens de gérer ça à la maison. ex : Monsieur et Madame se connectent avec le compte de Madame, mais si Madame a la mémoire qui flanche, c'est Monsieur qui rédige... Bref, chacun son potager et les vaches seront bien gardées... Sinon ça nous faisait entrer dans un système délirant et hiérarchique, de délégation de droits... oufti... on va pas aller vers ça.
Les choses ont mûri, je vais vraiment pouvoir ouvrir mon deuxième billet. Côté back office (je ferai ça en dernier voire pas du tout tant que je suis seule à administrer) memo_admin 1) les 5 tables "de nomenclature" que l'utilisateur ne peut pas modifier a_relative (nomenclature des différents liens que l'on peut entretenir avec des personnes) => faudra le compléter via formulaire de feedback a_class (nomenclature du type de memo) (fait, activité, mode de vie, projet etc.) a_priority (nomenclature de l'importance du memo) a_tempo (nomenclature de la temporalité du memo (présent, passé, récurrence etc.) a_category (nomenclature des tags) ESSENTIEL pour la suite, doit se résumer à 6 trucs genre famille financier loisirs santé travail _autre Côté front office, j'aurai 2 types d'utilisateurs : memo_writer memo_reader Pour une personne valide et par défaut, l'on est memo_writer & memo_reader pour soi par défaut. Ensuite, l'on peut être en plus memo_writer pour son épouse, et l'épouse est memo_reader... Quand il y a une personne aidante + une personne en difficulté alors l'aidant est writer, l'autre personne est reader only. Ah ça, j'ai pas encore modélise côté DB... note : urgent de finir ça d'abord... 2) les 9 tables utilisateur (à saisir dans l'ordre logique) par l'utilisateur memo_writer (obligatoire) cur_user (obligatoire) cur_memo (obligatoire) l_cur_memo_cur_tag (facultatif) l_relative_person cur_person l_cur_memo_cur_person (facultatif) cur_thing l_cur_memo_cur_thing (facultatif) cur_image l_cur_memo_cur_image 3) Côté memo_reader, je pars sur ce genre d'interface, qui présente un tableau fermé par défaut sur les 6 catégories de tags https://codepen.io/andornagy/pen/gaGBZz Et quand la personne ouvre une catégorie, bam, tout s'ouvre d'un coup, les memos rangés dans l'ordre de priorité choisi, les images éventuelles associées (maxi une par memo), les personnes éventuelles associées, les choses éventuelles associées... exemple : le memo "J'ai 4 enfants" doit produire une photo de groupe, avec une info bulle qui décrit les gens de gauche à droite... etc. Car ce que j'ai remarqué avec Marcelle, c'est que quand il y a des kilos de photos de ses petits enfants, elle dit, épuisée : "C'est trop"... et s'en va... Une photo "pédagogique" de groupe, tous au même moment, est bien plus utile. Je pense que je tiens le bon bout... J'y retourne ce soir. Côté site public, les choses ont également avancé. J'ai mon hébergement OVH... tout est prêt à tourner. Je me donne un mois de boulot sur mon temps libre pour passer en prod. Je sens que je vais saoûler mon pauvre mari. Mais comme son père a aussi des soucis de mémoire...
Bon, je considère que l'étape 1 (modélisation en base) est close. Voir le schéma de la db ci-dessus (le dernier), qui me semble abouti. Maitenant, je reprends le problème par l'autre bout. Et je vais ouvrir un my_memo étape 2... Les vues... quels formulaires vont remplir la base ? 1) les 4 tables "de nomenclature" que l'utilisateur ne peut pas modifier (administrateur) a_relative a_class a_priority a_tempo 2) les 9 tables utilisateur (à saisir dans l'ordre logique) cur_user l_relative_person cur_person l_cur_memo_cur_person cur_thing l_cur_memo_cur_thing cur_image l_cur_memo_cur_image cur_memo
Bon, j'ai résolu la question : où je place ma table image et ma table tags table image (id, datetime, link, title, description) table l_cur_memo_l_image (id, cur_memo_id, image_id) table tag( id, cur_memo, tag_libelle) Enfin, tout ceci qui ne fonctionne que pour UNE personne, il faut que je le revoie pour n personnes, et ce sera fini côté modélisation... Cinephil ? Fsmrel ? Artemus24 ? SQLPRO ? J'ai nommé les pointures de SQL que j'ai repérés... et tous ceux qui voient des conseils modélisation à ce stade ? Je veux pouvoir entrer n'importe quelle info "J'ai ouvert une assurance vie" "Mon chien est mort" => edit : ah tiens, "mon chien", ça va rentrer dans personne tant pis... j'aurais pu mettre anime/inanime "je projette de revendre mon appart dans 8 ans" "Je suis fâchée avec Bernard, mon frère" "Je suis encore en bons termes avec Jean-Luc, mon ex" "Je prend 2 pilules d'Azinc tous les matins" => edit : pourrait être rattaché à la chose abstraite "traitement médical" "Je pèse 68K" "Ma cuvette des WC a une fuite" etc... etc... edit aussi : Je pense que les tags pourront se référer aussi à des grandes catégories de la vie... santé, famille, loisirs, travail... et donc une nouvelle table a_categorie, où l'on devrait toujours laisser "autre"... parce que ma foi... on ne peut pas penser à tout.
Je voulais aussi ajouter quelque chose qui m'est souvent bien utile (mais seulement dans les commentaires cette fois), car c'est une notion un peu plus avancée. Souvent, je fais une table avec une clé d'unicité. Prenons une table contact('id','mail','pseudo'). Mettons que 'id' soit auto-incrémenté, que la colonne 'mail' soit le truc unique qu'on ne change jamais... J'ai donc posé dans ma table contact une clé d'unicité sur mail. Pas possible de faire un doublon de mail. Que se passe-t-il ensuite si 'toto@gmail.com', tête en l'air, est déjà dans ma base, sous le pseudo 'dark_vador', et veut se réinscrire, toujours avec le même mail donc, et le pseudo 'bisounours'... Eh oui, il a changé avec l'âge... Je règle ça ainsi en SQL : Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part 12INSERT INTO contact VALUES (NULL, 'toto@gmail.com', 'bisounours') ON DUPLICATE KEY UPDATE pseudo='bisounours'; Comme VOUS avez posé la clé d'unicité sur mail, il saura ce qu'est un doublon. Sinon, bien sûr, la db ne prend aucune initiative. Et miracle, dark_vador est devenu bisounours, sans changer de mail. Bien entendu, si le mail est absent de la table, c'est une simple insertion. Sinon, c'est une simple modif de pseudo. En PHP via PDO, c'est tout à fait possible aussi, avec cette méthode : Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part 123456789101112131415161718<?php $sql='INSERT INTO contact VALUES (NULL, ?, ?) ON DUPLICATE KEY UPDATE pseudo=?;'; $db = include 'db_mysql.php'; try { $stmt = $db->prepare($sql); $mail='toto@gmail.com'; $pseudo='bisounours'; //c'est ici qu'il faut tilter : $pseudo doit être présent 2 fois ! Rappelez-vous, autant de valeurs que de points d'interrogation au dessus ! $stmt->execute(array($mail, $pseudo, $pseudo)) ; // on peut récupérer une information assez précise (pour mysql du moins) $nb_insert = $stmt->rowCount(); //si c'est 1, il y a eu une vraie insertion, si c'est 2, il y a eu une simple modification du pseudo... unset($db); } catch (Exception $e) { print "Erreur ! " . $e->getMessage() . "<br/>"; } Enjoy !
INSERT INTO contact VALUES (NULL, 'toto@gmail.com', 'bisounours') ON DUPLICATE KEY UPDATE pseudo='bisounours';
<?php $sql='INSERT INTO contact VALUES (NULL, ?, ?) ON DUPLICATE KEY UPDATE pseudo=?;'; $db = include 'db_mysql.php'; try { $stmt = $db->prepare($sql); $mail='toto@gmail.com'; $pseudo='bisounours'; //c'est ici qu'il faut tilter : $pseudo doit être présent 2 fois ! Rappelez-vous, autant de valeurs que de points d'interrogation au dessus ! $stmt->execute(array($mail, $pseudo, $pseudo)) ; // on peut récupérer une information assez précise (pour mysql du moins) $nb_insert = $stmt->rowCount(); //si c'est 1, il y a eu une vraie insertion, si c'est 2, il y a eu une simple modification du pseudo... unset($db); } catch (Exception $e) { print "Erreur ! " . $e->getMessage() . "<br/>"; }
Bonjour ! Mise à jour importante (sur la recommandation de Jreaux), merci à toi. 1) Bien préciser tôt qu'on n'est pas censé ouvrir et fermer une connexion à chaque requête, parce que ça va mieux en le disant ! 2) Ensuite, pour les requêtes SELECT, écrire directement Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part 123 //$data est un tableau de tableaux associatifs directement exploitable ensuite dans une boucle foreach $data= $stmt->fetchAll(PDO::FETCH_ASSOC); Plutôt que de faire une boucle artificielle.
//$data est un tableau de tableaux associatifs directement exploitable ensuite dans une boucle foreach $data= $stmt->fetchAll(PDO::FETCH_ASSOC);
Merci Max de ton retour. Je suis d'accord avec la plupart de tes remarques. Ma hantise, c'est que le conjoint bien portant s'épuise. Au demeurant, il a dit cette phrase qui est pour moi la plus belle preuve d'amour : "De toute façon, si l'un de nous deux doit aller en ehpad, je prends soit une chambre commune, soit la chambre voisine, car il est hors de question que nos fins de vie soient séparées." C'est beau. On s'est dit avec mon mari que si ça se posait, on ferait pareil. Bien sûr, ça a un coût, financier et psychologique, mais quand on s'aime, on est prêt à en payer le prix. J'espère qu'un jour la science pourra au moins stopper définitivement l'évolution des maladies dégénératives du cerveau. Personnellement, j'en suis tout à fait convaincue. C'est un sujet sur lequel je suis optimiste. Le tout est de savoir quand. Je pense sérieusement que ma génération (54 ans) ne mourra plus de ces maladies cognitives, et que le diagnostic précoce sera indispensable car il bloquera totalement la maladie, voir remontera les dégâts. A part ça, j'ai progressé hier dans ma db. J'édite et je vous montre le schéma relationnel. Je pars de MES informations, pour être sûre que tout peut rentrer, passé (j'ai été prof), présent (mon métier), futur (j'achèterai un autre appart dans 8 ans), récurrence (je marche 1H trois fois par semaine), permanence (je n'ai pas d'enfants). A la réflexion, si l'on commence à remplir nos informations dès maintenant, ça peut être utile aussi, indépendamment de toute maladie cognitive, pour classer nos priorités. Car je m'aperçois que je mets en place un barème. What else ? il me reste à poser : la table images (indispensable bien qu'en left join) mais si vous pouvez me conseiller quant à la relation avec quelle table, j'ai plein de doutes. La table tags... Je me demandais s'il me fallait poser la table des émotions associées... Mais je me dis que non. On ne peut pas souffler aux gens des émotions. S'il oublie une info, ils oublient les émotions associées, on s'en tape. Pour une toute autre utilisation, les émotions sont un sujet qui me passionne. Et si vous voulez les modéliser, vous trouverez ici un travail passionnant, la roue des émotions, un travail quasi exhaustif de clinicien neurologue qui s'appelle Robert Plutchik et qui a modélisé ça dès 1980, la roue des émotions : https://fr.wikipedia.org/wiki/Robert_Plutchik
Bonjour, Je ne puis vous aider en ce qui concerne la conception informatique de votre projet qui j'en suis sûr sera utile durant de nombreuses années lorsqu'il sera au point. Car de plus en plus de personnes âgées intéressées par l'ordinateur seront atteintes de maladies neurodégénératives de type Alzamer. Je suis moi même confronté à ce genre de maladie et à ces problèmes que subissent ma soeur et ma belle mère âgée de 84 ans et 88 ans! IL me semble qu' à un stade déjà pas trop avancé de la maladie les malades eux même ne se sentent pas malade. Ce qui peut créer des conflits car elles se demandent pourquoi nous personnes bien portantes ont s'occupe de leur santé.Et qu'ensuite les malades ne se rendent plus compte de rien en vivant dans leur monde.En tout cas c'est ce que je peux constater pour mes deux proches! Et fait je considère que durant la plus longue partie de la maladie qu'ils subissent, le plus difficile à vivre n'est pas pour les malades mais pour les aidants! D'où parfois des personnes déjà vieilles encore en santé correct peuvent s'épuiser au contact des très vieux qu'elles doivent aider dans leur maladie! J'espère qu'un jour la science pourra au moins stopper définitivement l'évolution des maladies dégénératives du cerveau. Cordialement.
Alleluia, Cinephil, merci pour ce commentaire. Ecoute, pour l'instant, comment dire, aussi bizarre que cela paraisse, et j'ai pourtant l'impression qu'on a déjà une maladie de 5 ans sur une personne de 83, son caractère s'est incroyablement adouci ! Et en même temps, elle garde son humour, quand elle est en forme, et une très grande lucidité. Exemple d'un RV chez le médecin : "Alors comment va votre mémoire Marcelle ?" Elle : "Ma mémoire ? C'est Raymond !" le mari (prénom fictif). Et le médecin de répondre : "Eh bien c'est très bien comme ça". Marcelle n'a pas besoin de cacher quoi que ce soit, car plus personne de son mari ou de ses enfants ne s'étonne lorsqu'elle "yoyote" comme on dit dans les Vosges. Je sais que les heures les plus sombres sont devant nous. Mais pour l'instant, la maladie tue lentement, et ça m'arrange, je ne suis pas pressée. J'attends de tes nouvelles (sur le plan applicatif).
Projet intéressant ! Pas le temps de détailler ta coneption mais projet intéressant. Je vais demander à ma compagne, prof en neuro-sciences et elle aussi confrontée à l'Alzheimer de ses parents, si elle connait un logiciel qui va dans ton sens. Bon courage ! Je sais que ce n'est pas facile à vivre, même si je n'y ai pas été confronté directement moi-même.
Merci des infos. Alors je te conseille de poser ton problème dans la zone du forum consacrée à javascript. Si j'ai bien compris, tu as grosso modo fini la partie SQL... Ton problème reste uniquement d'intégrer la librairie javascript fullCalendar, plugin de jquery... pas du tout ma partie non plus. Regarde par ici https://blog.ludikreation.com/fullca...-comme-google/ Bon courage !
Envoyé par Dendrite Quel est ton existant ? Rien ? une base de données que tu consultes par phpmyadmin ? une appli base de données + script PHP ? Bonjour Dentrite, J'aimerais transformer ce tabeau excel en application php... L'idée est que chaque utilisateur puisse se connecter pour voir son planning et éventuellement apporter des modifications en cas de dépassement..et avoir un aperçu du delta et du cumul total L'administrateur doit pouvoir ajouter des utilisateurs et attribuer des heures et voir ceux qui ont modifiés leurs heures . ... Pour l'instant je me suis inspirer de tes tables pour construire ma base Code : Sélectionner tout - Visualiser dans une fenêtre à part 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161-- phpMyAdmin SQL Dump -- version 4.8.3 -- https://www.phpmyadmin.net/ -- -- Hôte : localhost:3306 -- Généré le : sam. 23 mars 2019 à 12:09 -- Version du serveur : 5.7.19 -- Version de PHP : 7.2.11 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Base de données : `cef_heurereel` -- -- -------------------------------------------------------- -- -- Structure de la table `horaire__prevue` -- CREATE TABLE `horaire__prevue` ( `id` int(11) UNSIGNED NOT NULL, `personne_id` int(11) NOT NULL, `jour_prevue` date NOT NULL, `debut_prevue` time NOT NULL, `fin_prevue` time NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED; -- -- Déchargement des données de la table `horaire__prevue` -- INSERT INTO `horaire__prevue` (`id`, `personne_id`, `jour_prevue`, `debut_prevue`, `fin_prevue`) VALUES (1, 1, '2018-06-01', '09:00:00', '16:00:00'), (2, 1, '2018-06-02', '16:00:00', '23:00:00'), (3, 1, '2018-06-04', '08:00:00', '16:00:00'), (4, 1, '2018-06-05', '14:00:00', '18:00:00'), (5, 2, '2018-06-01', '16:00:00', '23:00:00'), (6, 2, '2018-06-04', '16:00:00', '22:00:00'), (7, 3, '2018-06-01', '08:00:00', '16:00:00'), (8, 3, '2018-05-31', '16:00:00', '22:00:00'); -- -------------------------------------------------------- -- -- Structure de la table `horaire__saisie` -- CREATE TABLE `horaire__saisie` ( `id` int(11) UNSIGNED NOT NULL, `personne_id` int(11) NOT NULL, `jour_saisie` date NOT NULL, `debut_saisie` time NOT NULL, `fin_saisie` time NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED; -- -- Déchargement des données de la table `horaire__saisie` -- INSERT INTO `horaire__saisie` (`id`, `personne_id`, `jour_saisie`, `debut_saisie`, `fin_saisie`) VALUES (1, 1, '2018-06-01', '09:30:00', '14:00:00'), (2, 1, '2018-06-01', '14:00:00', '18:00:00'), (3, 1, '2018-06-04', '08:00:00', '11:50:00'), (4, 1, '2018-06-04', '13:00:00', '18:15:00'), (5, 2, '2018-06-01', '05:00:00', '13:00:00'), (6, 2, '2018-06-04', '13:00:00', '21:00:00'), (7, 3, '2018-06-01', '08:00:00', '23:59:59'), (8, 3, '2018-05-31', '08:00:00', '20:00:00'); -- -------------------------------------------------------- -- -- Structure de la table `users` -- CREATE TABLE `users` ( `id` int(11) NOT NULL, `username` varchar(50) NOT NULL, `password` varchar(255) NOT NULL, `created_at` datetime DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Déchargement des données de la table `users` -- INSERT INTO `users` (`id`, `username`, `password`, `created_at`) VALUES (1, 'pisco', '$2y$10$F5cMTysZIApkcPESrt7coOaxrSNz90wV/geqBejPpOutmx1VqxmHm', '2019-03-22 11:34:17'), (2, 'pisco2', '$2y$10$4NkOJxGJ5n9mCNurQmtSEuHcjiyvF01jgsGaxwHGoHva17JRdAxcC', '2019-03-22 12:18:41'), (3, 'booky', '$2y$10$xfVxUHqWJhSwPqUc9OD0T.opn.TyqU5u8gF9QCru9X1MCRQRoYdlS', '2019-03-22 13:10:42'); -- -- Index pour les tables déchargées -- -- -- Index pour la table `horaire__prevue` -- ALTER TABLE `horaire__prevue` ADD PRIMARY KEY (`id`), ADD KEY `personne_id` (`personne_id`), ADD KEY `jour` (`jour_prevue`), ADD KEY `debut` (`debut_prevue`), ADD KEY `fin` (`fin_prevue`), ADD KEY `periode` (`jour_prevue`,`debut_prevue`,`fin_prevue`); -- -- Index pour la table `horaire__saisie` -- ALTER TABLE `horaire__saisie` ADD PRIMARY KEY (`id`), ADD KEY `personne_id` (`personne_id`), ADD KEY `jour` (`jour_saisie`), ADD KEY `debut` (`debut_saisie`), ADD KEY `fin` (`fin_saisie`), ADD KEY `periode` (`jour_saisie`,`debut_saisie`,`fin_saisie`); -- -- Index pour la table `users` -- ALTER TABLE `users` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `username` (`username`); -- -- AUTO_INCREMENT pour les tables déchargées -- -- -- AUTO_INCREMENT pour la table `horaire__prevue` -- ALTER TABLE `horaire__prevue` MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; -- -- AUTO_INCREMENT pour la table `horaire__saisie` -- ALTER TABLE `horaire__saisie` MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; -- -- AUTO_INCREMENT pour la table `users` -- ALTER TABLE `users` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; j'ai fais aussi l'interface de connexion qui redirige son l’accueil utilisateur... J'ai essayer d’intégrer fullcalendar mais c'est pas encore de mon niveau https://fullcalendar.io/docs/timelin...dard-view-demo
-- phpMyAdmin SQL Dump -- version 4.8.3 -- https://www.phpmyadmin.net/ -- -- Hôte : localhost:3306 -- Généré le : sam. 23 mars 2019 à 12:09 -- Version du serveur : 5.7.19 -- Version de PHP : 7.2.11 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Base de données : `cef_heurereel` -- -- -------------------------------------------------------- -- -- Structure de la table `horaire__prevue` -- CREATE TABLE `horaire__prevue` ( `id` int(11) UNSIGNED NOT NULL, `personne_id` int(11) NOT NULL, `jour_prevue` date NOT NULL, `debut_prevue` time NOT NULL, `fin_prevue` time NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED; -- -- Déchargement des données de la table `horaire__prevue` -- INSERT INTO `horaire__prevue` (`id`, `personne_id`, `jour_prevue`, `debut_prevue`, `fin_prevue`) VALUES (1, 1, '2018-06-01', '09:00:00', '16:00:00'), (2, 1, '2018-06-02', '16:00:00', '23:00:00'), (3, 1, '2018-06-04', '08:00:00', '16:00:00'), (4, 1, '2018-06-05', '14:00:00', '18:00:00'), (5, 2, '2018-06-01', '16:00:00', '23:00:00'), (6, 2, '2018-06-04', '16:00:00', '22:00:00'), (7, 3, '2018-06-01', '08:00:00', '16:00:00'), (8, 3, '2018-05-31', '16:00:00', '22:00:00'); -- -------------------------------------------------------- -- -- Structure de la table `horaire__saisie` -- CREATE TABLE `horaire__saisie` ( `id` int(11) UNSIGNED NOT NULL, `personne_id` int(11) NOT NULL, `jour_saisie` date NOT NULL, `debut_saisie` time NOT NULL, `fin_saisie` time NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED; -- -- Déchargement des données de la table `horaire__saisie` -- INSERT INTO `horaire__saisie` (`id`, `personne_id`, `jour_saisie`, `debut_saisie`, `fin_saisie`) VALUES (1, 1, '2018-06-01', '09:30:00', '14:00:00'), (2, 1, '2018-06-01', '14:00:00', '18:00:00'), (3, 1, '2018-06-04', '08:00:00', '11:50:00'), (4, 1, '2018-06-04', '13:00:00', '18:15:00'), (5, 2, '2018-06-01', '05:00:00', '13:00:00'), (6, 2, '2018-06-04', '13:00:00', '21:00:00'), (7, 3, '2018-06-01', '08:00:00', '23:59:59'), (8, 3, '2018-05-31', '08:00:00', '20:00:00'); -- -------------------------------------------------------- -- -- Structure de la table `users` -- CREATE TABLE `users` ( `id` int(11) NOT NULL, `username` varchar(50) NOT NULL, `password` varchar(255) NOT NULL, `created_at` datetime DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Déchargement des données de la table `users` -- INSERT INTO `users` (`id`, `username`, `password`, `created_at`) VALUES (1, 'pisco', '$2y$10$F5cMTysZIApkcPESrt7coOaxrSNz90wV/geqBejPpOutmx1VqxmHm', '2019-03-22 11:34:17'), (2, 'pisco2', '$2y$10$4NkOJxGJ5n9mCNurQmtSEuHcjiyvF01jgsGaxwHGoHva17JRdAxcC', '2019-03-22 12:18:41'), (3, 'booky', '$2y$10$xfVxUHqWJhSwPqUc9OD0T.opn.TyqU5u8gF9QCru9X1MCRQRoYdlS', '2019-03-22 13:10:42'); -- -- Index pour les tables déchargées -- -- -- Index pour la table `horaire__prevue` -- ALTER TABLE `horaire__prevue` ADD PRIMARY KEY (`id`), ADD KEY `personne_id` (`personne_id`), ADD KEY `jour` (`jour_prevue`), ADD KEY `debut` (`debut_prevue`), ADD KEY `fin` (`fin_prevue`), ADD KEY `periode` (`jour_prevue`,`debut_prevue`,`fin_prevue`); -- -- Index pour la table `horaire__saisie` -- ALTER TABLE `horaire__saisie` ADD PRIMARY KEY (`id`), ADD KEY `personne_id` (`personne_id`), ADD KEY `jour` (`jour_saisie`), ADD KEY `debut` (`debut_saisie`), ADD KEY `fin` (`fin_saisie`), ADD KEY `periode` (`jour_saisie`,`debut_saisie`,`fin_saisie`); -- -- Index pour la table `users` -- ALTER TABLE `users` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `username` (`username`); -- -- AUTO_INCREMENT pour les tables déchargées -- -- -- AUTO_INCREMENT pour la table `horaire__prevue` -- ALTER TABLE `horaire__prevue` MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; -- -- AUTO_INCREMENT pour la table `horaire__saisie` -- ALTER TABLE `horaire__saisie` MODIFY `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; -- -- AUTO_INCREMENT pour la table `users` -- ALTER TABLE `users` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Quel est ton existant ? Rien ? une base de données que tu consultes par phpmyadmin ? une appli base de données + script PHP ?