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

Langage PHP Discussion :

Récupérer la valeur d'un champ auto-incrementé [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Par défaut Récupérer la valeur d'un champ auto-incrementé
    bonsoir à tous,
    je revient vers vous car après maintes recherches je n'y arrive pas.
    voici mon code ( j'espere que cette fois ça sera propre )

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    <?php
    /* Nom du programme :  ajout_patient.php
    /* description : Page d'ajout de patient à partir d'un formulaire
    /*				 sur la table patient. On est dirigé vers une page qui affiche
    /*				 un message informant de la prise en compte de l'ajout du patient 
    /*				 et propose d'en ajouter un autre ou d'ajouter des rdv 
    /*				 ou de retourner vers la liste des patients. Si on ajoute des rdv on recupere l'id patient en parametre.
    */
    ?>
    <?php
    $id_uf=$_REQUEST['id_uf'];
    echo "uf du service=$id_uf";
    // Reporte toutes les erreurs PHP
    error_reporting(-1);
    /* connexion au serveur et à la base de données et requete de selection sur la table services*/
     
     
    include ("includes/connect.inc.php");
     
    if (isset ($_POST['enregistre']) && $_POST['enregistre'] == "oui")
    {
    	$connexion = mysql_connect ($host,$user,$password)
    					or die ("Connexion au serveur impossible");
    	$db=mysql_select_db($database,$connexion)
    					or die ("selection de la base de données impossible");
    	$sql = "INSERT INTO patients (id,id_uf,nom,prenom,naissance,sexe,chambre,enable)VALUES 
    		    (	".
    				"'',".
    				"'".$id_uf."',".			
    				"'".$_POST['nom']."',".
    				"'".$_POST['prenom']."',".
    				"'".$_POST['naissance']."',".
    				"'".$_POST['sexe']."',".
    				"'".$_POST['chambre']."',
    				'1')";
    			mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
    			echo "la table a été correctement charger";
    	mysql_close ($connexion);
    }
    include ("includes/header.inc.php");
    ?>
    <p align="left">:: Ajouter un patient
    <form action="choix_ajout_patient.php?id_uf=<?php $id_uf ?>&id_patient=<?php $id ?>" method="post">
    <input type="hidden" name="enregistre" value="oui"/>
    <input type="hidden" name="id_uf" value="<?php echo "$id_uf";?>"/>
    	<table>
    		<tr>
    		<td>Nom :</td>
    		<td> <input type="text" name="nom" value=""></td>
    		</tr>
    		<tr>
    		<td>Prénom :</td>
    		<td> <input type="text" name="prenom" value=""></td>
    		</tr>
    		<tr>
    		<td>Naissance :</td>
    		<td> <input type="date" name="naissance" value=""></td>
    		</tr>
    		<tr>
    		<td>Sexe :</td>
    		<td> <select name="sexe">
    					   <option value="M" selected>M
    					   <option value="F">F
    					   </select></td>
    		</tr>
    		<tr>
    		<td>Chambre :</td>
    		<td> <input type="text" name="chambre" value=""></td>
    		</tr>
    	</table>
    		</br>
    		<input type="submit" value="enregistrer">
     
     
    </form>
     
    <?php
    	 include ("includes/footer.inc.php");
    ?>
    </tr>
    </table>
    <?php
    include ("includes/footer2.inc.php");
    ?>
    donc voila ( j’espère que je serais assez claire !)
    comme expliqué dans la partie commentaire de mon code ( au début ) je veux rediriger après insertion (donc seulement si elle est réussi) vers une page qui ou je proposerais
    a) soit d 'ajouter un nouveau patient
    b) soit d'ajouter un rdv
    c) soit de retourner vers l'accueil.

    pour a) j'ai besoin de récupérer l'id_uf (ça j'ai su faire)
    pour c) pas de soucis ( que du html)
    pour b) par contre je ne sais pas récupérer le champs id qui est auto incrémenter !
    j'ai bien vu la solution avec : mais est ce que je doit l'utiliser sur ma page d'affichage du message de choix ( ça me parait le plus logique mais je ne suis sur de rien !) ou sur la page de mon formulaire afin de récupérer la valeur de l'id dans une variable et récupérer cette variable sur ma page de choix ? dans les deux cas : comment j'utilise cette fonction ?

    merci de vos réponses et de votre aide !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Par défaut
    bon et bien après maintes recherche j'ai ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_patient= mysql_insert_id();
    juste après ma requête et lorsque j’exécute ma requête et que je fait un il m'affiche bien le dernier enregistrement ...mais ça ne marche que si dans mon formulaire je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="ajout_patient.php?id_uf=<?php echo "$id_uf"; ?>&id_patient=<?php echo '$id_patient'; ?>" method="POST">
    car si je veux recupere le parametre sur une autre page j'obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined index:.....
    je continue mes recherche mais si vous avez une solution merci de m'aidez !
    si je trouve je mettrais ma solution !

  3. #3
    Membre confirmé Avatar de satenske
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 143
    Par défaut
    Notice: Undefined inde

    ça veut tout simple dire que ta variable n'a pas été déclaré, donc les pages ou tu obtiens ça, c'est que ta variable n'existe pas.
    Ta variable, si tu en as besoin dans d'autre pages, tu es en effet obligé de la faire passer via l'adresse($_GET['']), ou éventuellement des sessions.

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Par défaut
    Citation Envoyé par herve911 Voir le message
    bon et bien après maintes recherche j'ai ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_patient= mysql_insert_id();
    juste après ma requête et lorsque j’exécute ma requête et que je fait un il m'affiche bien le dernier enregistrement ...mais ça ne marche que si dans mon formulaire je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="ajout_patient.php?id_uf=<?php echo "$id_uf"; ?>&id_patient=<?php echo '$id_patient'; ?>" method="POST">
    car si je veux recupere le parametre sur une autre page j'obtient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined index:.....
    je continue mes recherche mais si vous avez une solution merci de m'aidez !
    si je trouve je mettrais ma solution !
    de mémoire tu ne peut pas passer de variable dans l'url d'un formulaire, il faut pour cela utiliser un input de type hidden que tu récupère dans ta page cible.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  5. #5
    Membre confirmé Avatar de satenske
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 143
    Par défaut
    Techniquement, on peut, on récupérera une variable superglobale $_GET[''], ça marchera sans problème!

    C'est juste beaucoup plus propre d'utiliser un hidden en effet, ça évite à l'utilisateur de voir une adresse toute biscornue, ça devient vite lourd si on fait passer 3-4variables (à moins d'utiliser l'url rewriting).

    J'ai toujours utilisé cette théorie: si on peut éviter les get; on évite!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_patient= mysql_insert_id();
    si j’écris celaj'ai bel et bien initialisé la variable $id_patient qui contient la valeur récupérer par la fonction ?

    si j'écris ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="id_patient" value="<?php echo "$id_patient";?>"/>
    j’envoie bien cette variable dans le champs caché avec la valeur récupère ?

    si oui pourquoi j’obtiens ce message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Undefined variable: id_patient in C:\wamp\www\rdv_patient\ajout_patient.php on line 52 Call Stack #TimeMemoryFunctionLocation 10.0007378816{main}( )..\ajout_patient.php:0 "/>

  7. #7
    Membre confirmé Avatar de satenske
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 143
    Par défaut
    Si tu utilise hidden, la variable n'est pas id_patient mais $_POST['id_patient']
    Donc, sur ta page de traitement utilise $_POST['id_patient']

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

Discussions similaires

  1. [MySQL] récupérer un champs auto increment
    Par linouchka dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/06/2014, 12h09
  2. récupérer la valeur d'un champ auto-incrémente
    Par mehdi.cheddani dans le forum VB.NET
    Réponses: 16
    Dernier message: 27/01/2014, 17h39
  3. Récupérer la valeur d'un champs auto incrémenté
    Par jim53 dans le forum Débuter
    Réponses: 2
    Dernier message: 06/12/2013, 21h49
  4. Récupérer la valeur d'un champ auto increment dans Firebird
    Par mls dans le forum Bases de données
    Réponses: 11
    Dernier message: 30/09/2009, 19h35
  5. récupérer la valeur du 2ème champ dans un DBLookUpListBox
    Par jakouz dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/07/2004, 16h45

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