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 :

Insertion PHP dans MySQL ?


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Insertion PHP dans MySQL ?
    Bonjour à tous !

    Je sèche complètement sur un point important du petit projet sur lequel je travaille. Je dispose d'une BDD sous MySQL ainsi que de deux pages webs : l'une contenant un formulaire et l'autre contenant une requête.

    La table :

    Nom : tableau.png
Affichages : 119
Taille : 10,0 Ko

    La page contenant le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <html>
     
        <head>
     
            <body>
     
    				<link rel="stylesheet" href="style.css">
     
    				<div id="enregistrementpatient">
     
    					<form method="post" action="pagerecup.php">
     
    						<fieldset>
     
    									<legend> Consulter le dossier d'un patient </legend>									
    									<p> <label for="QQ"> Entrez le numéro de sécurité sociale du patient </label>
    									<input type="text" name="nmSS" id="SS"/> </p>	
    									<p>	<input type="submit" name="valider" id="valider" action="pagerecup.php"/> </p>
     
     
    						</fieldset>
     
    					</form>
     
    				</div>
     
            </body>
     
        </head>
     
    </html>
    Qui donne ça :

    Nom : tableau.png
Affichages : 125
Taille : 5,9 Ko

    La page contenant la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <html>
     
    	<head>
     
    		<title>Récupération données</title>
     
    	</head>
     
    			<body>
     
    					<?php
     
    						$requete=$_POST['nmSS'];
    						echo $requete;
     
    						$bdd=new PDO('mysql:host=localhost;dbname=BDDMedecine;charset=utf8', 'root', '');				
    						$info=$bdd->prepare('SELECT * FROM Patient WHERE nmSS = '.$requete);
    						$info->execute();
    						$reponse=$info->fetch(PDO::FETCH_ASSOC);
     
    						while ($reponse=$info->fetch())
     
    							{
     
    							 echo $reponse['numSS'];
    							 echo $reponse['nomP'];	
    							 echo $reponse['prenomP'];	
    							 echo $reponse['sexe'];	
     
    							}
     
    					?>
     
    			</body>
     
    </html>
    Voilà mon problème : J'aimerai que lorsqu'un utilisateur entre une valeur (par exemple 555), les champs qui représentent le dossier du patient, soient affichés. Je pensais, qu'il suffisait de créer une variable $requete à insérer dans le code MySQL, mais de toute évidence, non.

    Quelqu'un aurait-il une solution ? Merci d'avance o/ !

  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
    Ta requête mais n'est pas techniquement faux mais n'est pas sécurisée.
    La préparation fonctionne avec les paramètres nommées.
    Egalement, tu as deux fois le fetch :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $bdd=new PDO('mysql:host=localhost;dbname=BDDMedecine;charset=utf8', 'root', '');				
    $info=$bdd->prepare('SELECT * FROM Patient WHERE nmSS = :nmSS');
    $info->execute(array(':nmSS'=>$_POST['nmSS']));
    while ($reponse=$info->fetch(PDO::FETCH_ASSOC))
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Rebonjour ! Et merci pour ta réponse.

    Je prend en note ce que tu as écris. Cependant, j'ai toujours le même problème après avoir modifié mon code. Je devrais en effet avoir les informations affichées, mais ce n'est pas le cas... J'ai sauté une étape ?

    Merci à toi.

  4. #4
    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
    Vérifie ta requête dans Phpmyadmin pour être sur qu'elle donne des résultats.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

    ce serait bien aussi de (re)montrer ton code.
    Qu'on voit s'il a été correctement corrigé.


    N.B. D'autre part, tu ne fais aucune vérification / gestion d'erreur.
    Par ex. : un numéro de sécurité sociale contient un nombre défini de chiffres, et certaines "contraintes" définies aussi (en France : Signification des chiffres du NIR)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    function valideNir($nir){
     
            /*
             * ------------------------
             * Par GV le 21 / 01 / 2014. Dans la REGEX, chaque ligne représente un groupe de règles ci-dessous.
             * ------------------------
             * Position 1 : 1 pour un homme, 2 pour une femme, 3 pour les personnes étrangères en cours d’immatriculation,
             * 7 et 8 pour les numéros provisoires
             * ------------------------
             * Position 2 et 3 : Les deux derniers chiffres de l'année de naissance, de 00 à 99
             * ------------------------
             * Position 4 et 5 : Mois de naissance, de 01 (janvier) à 12 (décembre), de 20 à 30 et de 50 à 99 pour les
             * personnes dont la pièce d'état civil ne précise pas le mois de naissance, de 31 à 42 pour celle dont la pièce
             * d'état civile est incomplète mais précise quand même le mois de naissance
             * ------------------------
             * Position 6 à 10 : Trois cas de figures
             * CAS 1 :
             * Position 6 et 7 : Département de naissance métropolitain, de 01 à 95 (plus 2A ou 2B pour la Corse)
             * Dans des cas exceptionnels, il est possible de trouver le numéro 96 qui correspondait à la Tunisie avant 1956.
             * Position 8, 9 et 10 : Numéro d'ordre de naissance dans le département, de 001 à 989 ou 990
             * CAS 2 :
             * Position 6, 7 et 8 : Département de naissance Outre-mer, de 970 à 989
             * Position 9 et 10 : Numéro d'ordre de naissance dans le département, de 01 à 89, ou 90
             * CAS 3 :
             * Position 6 et 7 : Naissance hors de France, une seule valeur : 99
             * Position 8, 9 et 10 : Identifiant du pays de naissance, de 001 à 989, ou 990
             * ------------------------
             * Position 11, 12 et 13 : Numéro d'ordre de l'acte de naissance dans le mois et la commune (ou pays) de 001 à 999
             * ------------------------
             * Position 14 et 15 : Clé de contrôle, de 01 à 97 (Non contrôlé dans ce cas)
             * ------------------------
             */
            $regexp = '/^
            ([1-37-8])
            ([0-9]{2})
            (0[0-9]|[2-35-9][0-9]|[14][0-2])
            ((0[1-9]|[1-8][0-9]|9[0-69]|2[abAB])(00[1-9]|0[1-9][0-9]|[1-8][0-9]{2}|9[0-8][0-9]|990)|(9[78][0-9])(0[1-9]|[1-8][0-9]|90))
            (00[1-9]|0[1-9][0-9]|[1-9][0-9]{2})
            (0[1-9]|[1-8][0-9]|9[0-7])
            $/x';
     
            return preg_match($regexp, $nir) > 0;
     
    }
    Dernière modification par Invité ; 25/04/2017 à 17h10.

Discussions similaires

  1. Insertion NULL dans Mysql avec PHP
    Par henneka dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/04/2017, 16h43
  2. [MySQL] Insertion donnees dans mysql php
    Par Flyover dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 26/09/2012, 11h46
  3. Réponses: 2
    Dernier message: 06/10/2009, 23h41
  4. [Upload] Insertion image dans mysql après upload
    Par alexmorel dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2006, 23h46
  5. pb avec insertion sigle € dans MySql
    Par mohican13 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 02/12/2005, 10h12

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