IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Inserer données sur une ligne dans la même journée sans effacer l'ancienne [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 62
    Points : 39
    Points
    39
    Par défaut Inserer données sur une ligne dans la même journée sans effacer l'ancienne
    Bonjour à tous,

    Je reviens vers vous car je n'arrive pas à solutionner mon problème et je sais qu'ici vous nous mettez bien sur la piste ou voir même donner la solution.

    C'est toujours dans le cadre de mes anciens topics ( Carte vitale, Borne de commande)

    Alors je vous explique

    On prend client X

    Ma BDD :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nom | Prenom|  Date de naissance|  Numéro de sécurité sociale  |Jour|  Heure|  Téléphone Fixe|	Téléphone Portable |	Ville |	Code postal |	Adresse |	Recto |	Verso |	Dossier client | ID
    Etape 1 : Lorsque le client se présente cela insert une ligne ou je récupère les infos

    Nom,Prénom,Date de naissance, Numéro de sécu, Jour et Heure et un ID = 1 ( Exemple)

    Etape 2: si il va jusqu'au bout depuis un formulaire il inscrit

    Téléphone Fixe, Portable, Ville, Code Postal, Adresse

    Etape 3:Le client scan sont ordonnances (éléments qui me pose problème j'explique dessous )

    J'enregistre le chemin de l'image dans ma BDD Recto et Verso

    Ça c'est le fonctionnement si c'est la première fois que le client vient

    Ensuite j'ai un tableau qui est :

    Nom : Capture.PNG
Affichages : 97
Taille : 26,3 Ko

    Si je clique sur Image 1 je dois avoir le fichier scanné précédemment

    Maintenant si le client vient une deuxième fois

    Je refais l'étape 1 mais l'ID=2

    Le client à le choix de ne pas modifier les infos sur l'étape 2

    Le client passe à l'étape 3 il scan sont ordonnance

    Je fais un update et cela me change toutes les images de mon tableau pour mon client X que pour la même journée. C'est à dire si le client vient demain mon image de la veille je l'ai toujours

    Alors le problème est comment garder mes images du jour si le client vient 2 fois dans la même journée ?

    Voici mon update

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $con->query("UPDATE identite SET Recto='$recto', Verso='$verso' WHERE Secu='$secu' AND Jour='$jour2'");
    J'ai essayé de mettre un WHERE avec un ID mais il me donne toujours le dernier ( en suivant mon exemple l'ID=1) jamais le nouveau. De même avec l'heure

    Je ne sais pas si c'est clair pour vous car beaucoup de choses à expliquer..

    Merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu veux plusieurs images par client, il te faut une table indépendante pour stocker les images du client.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    c'est avant tout un problème de CONCEPTION.


    Il faut bien différencier les tables, et "ranger" les infos au bon endroit.

    1/ table CLIENTS : SEULE les infos concernant directement le client sont à mettre dedans :
    • id_client
    • référence client
    • nom,
    • prénom,
    • date de naissance,
    • numéro de sécu,
    • adresse
    • .....



    2/ table RENDEZ-VOUS : chaque RENDEZ-VOUS est lié à un CLIENT, mais ne contiendra QUE les infos en rapport avec ce RDV :
    • id_rendez_vous
    • id_client
    • date_rdv
    • horaire_rdv
    • id_medecin (ici, on peut envisager une autre table MEDECINS)
    • ....


    3/ table ORDONNANCES : chaque ORDONNANCE est liée à un RENDEZ-VOUS :
    • id_ordonnance
    • id_rendez_vous
    • scan recto
    • scan verso
    • date du scan
    • ...


    Et ainsi de suite.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 62
    Points : 39
    Points
    39
    Par défaut
    D'accord pour la création d'une deuxième table.

    Mais je ne vais pas avoir le même problème ? Si le client passe 2 fois dans la même journée cela va effacer son premier scan par son nouveau ?

    Je souhaite garder l'historique des scans grâce au tableau "Liste des clients".

  5. #5
    Invité
    Invité(e)
    Par défaut
    "2 fois dans la même journée" veut dire : 2 rendez-vous (même jour, mais pas mêmes horaires).

    Ton histoire d'"ordonnances" peut aussi s'apparenter à une galerie-photos (dans son fonctionnement).


    Réfléchis encore.....

    N'hésite pas à prendre un papier et un crayon.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 62
    Points : 39
    Points
    39
    Par défaut
    Tout à fait d'accord qu'on va se fier à l'horaire pour insérer

    Mais c'est ce que j'ai essayé de faire dans ma requete plus haut mais celle ci ne m'affiche que la derniere valeur..

    Si le client vient une 1ere fois à 17h je fais un INSERT INTO j'ai donc cette ligne dans ma BDD :

    DUPONT JEAN sa_date_de_naissance son_numero_secu 10/10/2017 17:00:00

    Ensuite le reste est fait à partir d'un update (Tel, adresse,Recto,Verso, etc...

    Si maintenant il revient à 18h

    J'ai ma ligne qui se met à :

    DUPONT JEAN 10/10/2017 18:00:00

    Du coup avant de faire l'update je demande une requête pour avoir la dernière heure arrivée dans ma BDD pour qu'elle n'affecte que la ligne ou il est venu à 18 mais celle ci me retourne 17h... Donc efface l'ancienne valeur et n’écrit pas dans la nouvelle
    Ma requête qui est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req = "SELECT Heure FROM identite WHERE Secu = '$numero' ";
    $res = $con->query($req);
    if($data = mysqli_fetch_assoc($res)) 
    $data['Heure'];
    Je comprend le fonctionnement d'une deuxième table mais c''est au niveau de ma requête ou cela ne vas pas marcher

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Commence par définir une bonne structure de base de données.
    Les requêtes qui l'exploiteront ensuite seront simple et logique à écrire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 62
    Points : 39
    Points
    39
    Par défaut
    J'ai trouvé la commande qui permet de mettre à jour que la dernière ligne voulu et qui se base par rapport à l'heure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if ($jour2!=$jour2)
     
    {
    		$con->query("UPDATE identite SET Recto='$recto', Verso='$verso' WHERE Secu='$secu' AND Jour='$jour2'");
    }		
     
     
    else //si même jour
    {
    	$con->query("UPDATE identite SET Recto='$recto', Verso='$verso' WHERE Secu='$secu' AND Jour='$jour2' ORDER BY Heure DESC LIMIT 1");
     
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 22/08/2017, 20h41
  2. Réponses: 3
    Dernier message: 15/02/2011, 17h17
  3. [XHTML] 2 données sur une même ligne
    Par Bayard dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/10/2007, 22h17
  4. [phpMyAdmin] question sur une ligne à ajouter à ma base de données
    Par jsdar dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 14/04/2007, 11h13
  5. Afficher les données d'un champ sur une ligne
    Par white-angel dans le forum Access
    Réponses: 6
    Dernier message: 30/08/2006, 11h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo