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

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Points : 28
    Points
    28
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Points : 28
    Points
    28
    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 : 32
    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
    Points : 477
    Points
    477
    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.
    « Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it. » – Linus Torvalds

  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 : 43
    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
    Points : 7 503
    Points
    7 503
    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 : 32
    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
    Points : 477
    Points
    477
    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!
    « Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it. » – Linus Torvalds

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Points : 28
    Points
    28
    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 : 32
    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
    Points : 477
    Points
    477
    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']
    « Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it. » – Linus Torvalds

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Points : 28
    Points
    28
    Par défaut
    c'est vraiment "étrange" !
    voici mon code ( à nouveau )
    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <?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());
    			$id_patient=mysql_insert_id();
    			
    	/*echo"<br/>";
    			echo "la table a été correctement charger";
    			echo"<br/>";
    			echo "$id_patient";*/
    	mysql_close ($connexion);
    	
    }
    include ("includes/header.inc.php");
    ?>
    <p align="left">:: Ajouter un patient
    <form action="choix_ajout_patient.php" method="POST">
    <input type="hidden" name="enregistre" value="oui"/>
    <input type="hidden" name="id_uf" value="<?php echo "$id_uf";?>"/>
    <input type="hidden" name="id_patient" value="<?php echo "$id_patient";?>"/>
    	<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
    	
    /*	echo "le dernier id enregistré est le n° : $id"; */
    	 include ("includes/footer.inc.php");
    ?>
    </tr>
    </table>
    <?php
    include ("includes/footer2.inc.php");
    ?>
    voila si dans mon <form> je renvoie le formulaire sur lui même après traitement je récupère bien la valeur de la variable $id_patient et le traitement se fait : la requete s'execute et alimente la table !

    par contre si je l'envoie vars la page de choix ou il n'y a que ce code :
    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
    <?php
    /* Nom du programme :  choix_ajout_patient.php
    /* description : Page qui permet de choisir si :
    /* - on ajoute un rendez vous
    /* - on ajoute un autre patient
    /* - on retourne à l'accueil.
    /* 
    */
     
    ?>
     
    <?php
    echo "uf du service=$_POST[id_uf]";
    echo"<br/>";
     
    echo "id du patient=$_POST[id_patient]";
     
    include ("includes/header.inc.php");
    echo "la table a été correctement charger";
     
    ?>
    je récupère la valeur de la 1ere variable ($_POST[id_uf).
    par contre la 2nde non !
    si je change le $_POST par une autre méthode ça me dis que l'index n'est pas définis !.....bizarre non ?

  9. #9
    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 : 43
    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
    Points : 7 503
    Points
    7 503
    Par défaut
    je vais reprendre bêtement ce qu'a marqué satenske

    l'utilisation de quote et obligatoire.
    la vie n'est pas cirrhose des foies ...

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

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Points : 28
    Points
    28
    Par défaut
    je me permet de faire un up car je n'y arrive vraiment pas ! c'est comme si on ne pouvait pas passer en paramètre dans une variable la valeur d'une récupérer par une fonction !

    donc si vous avez une idée ou si vous trouvez une erreur dans mon code merci de m'aider !

    bon j'y vais :

    alors si j'ecris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="hidden" name="id_uf" value="<?php $_POST ['id_uf']; ?>"/>
    <input type="hidden" name="id_patient" value="<?php $_POST['id_patient'] ; ?>"/>
    lorsque j'arrive sur mon formulaire j'ai ça !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Notice: Undefined index: id_uf in C:\wamp\www\rdv_patient\ajout_patient.php on line 51 Call Stack #TimeMemoryFunctionLocation 10.0009377944{main}( )..\ajout_patient.php:0 "/> ( ! )
     Notice: Undefined index: id_patient in C:\wamp\www\rdv_patient\ajout_patient.php on line 52 Call Stack #TimeMemoryFunctionLocation 10.0009377944{main}( )..\ajout_patient.php:0 "/>
    si j'ecris ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="hidden" name="id_uf" value="<?php $id_uf; ?>"/>
    <input type="hidden" name="id_patient" value="<?php $id_patient; ?>"/>
    plus de soucis je n'ai pas le message d'erreur !
    je remplis mon formulaire je valide et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ( ! ) Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\rdv_patient\choix_ajout_patient.php on line 14
    voici le code défectueux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    echo "uf du service = $_POST['id_uf']";  (ici ligne 14)
    echo"<br/>";
    echo "id du patient = $_POST['id_patient']";
    ?>

  11. #11
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    Citation Envoyé par Vil'Coyote Voir le message
    l'utilisation de quote et obligatoire.
    Faux. Elle est conseillée (évite des warnings, économise une interpolation de la part de l'analyseur), mais pas obligatoire.

    Il y a même des cas où ajouter des guillemets simples provoque des erreurs. Justement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "uf du service = $_POST['id_uf']"; // plante
    echo "uf du service = $_POST[id_uf]"; // ne plante pas si l'index id_uf existe
    Le mieux étant sans doute d'utiliser une syntaxe complète et non ambigüe ou une concaténation explicite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "uf du service = {$_POST['id_uf']}"; 
    echo "uf du service = ". $_POST['id_uf'];
    Ref : http://www.php.net/manual/fr/languag...string.parsing

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Points : 28
    Points
    28
    Par défaut
    ça me rend dingue....je comprends pas pourquoi je n'arrive pas à récupérer la valeur de ces variables !!!!!!!!
    j'ai tenté toutes les méthodes évoquées ici plus j'ai tenté de les récupérer comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $id_uf=$_REQUEST['id_uf'];
    $id=$_REQUEST['id'];
    echo "uf du service =$id_uf";
    echo"<br/>";
     
    echo "uf du service =".$id;
     
    include ("includes/header.inc.php");
    echo "la table a été correctement charger";
     
    ?>
    j'ai mis des crochets, des accolade rien, des simple cotes des doubles cotes...mais rien à faire mes variables ne passent pas sur ma page !!!!!!
    malgré que j'ai deux input hidden pour récupérer ces valeurs et que j'ai initialisé mes variables sur la page d'arrivé !!!!!
    je suis perdue !!!!! si vous avez une solution merci de m'aider !

  13. #13
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    C'est forcément un éléphant. Essaye donc les techniques de pistage de base. Par exemple, puisque les valeurs que tu veux lire viennent d'un formulaire, elles sont forcément dans $_POST sinon c'est que ton formulaire est buggué. Que donne un print_r($_POST, true) sur la page appelée après la soumission de ce formulaire ?

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Points : 28
    Points
    28
    Par défaut
    j'ai ajouté ce code a ma page ou je suis sensé recuperer la valeur de mes variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<pre>";
    print_r($_POST, true);
    echo "</pre>";
    ça ne donne rien ( rien ne s'affiche)!

  15. #15
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    Normal : http://www.php.net/manual/fr/function.print-r.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo "<pre>", print_r($_POST, true), "<pre>"
    // ou
    echo "<pre>";
    print_r($_POST);
    echo "</pre>";
    marchera mieux

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par Herode Voir le message
    Normal : http://www.php.net/manual/fr/function.print-r.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo "<pre>", print_r($_POST, true), "<pre>"
    // ou
    echo "<pre>";
    print_r($_POST);
    echo "</pre>";
    marchera mieux
    en effet ça va mieux !!!! merci.

    voici la reponse du print_r :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Array
    (
        [enregistre] => oui
        [id_uf] => 
        [id] => 
        [nom] => bataille
        [prenom] => marie
        [naissance] => 1973-05-23
        [sexe] => F
        [chambre] => 1312
    )
    1
    donc mes champs id_uf et id ne sont pas alimentés ! par contre ce que je trouve étrange c'est que dans ma base de données le champs id ( cle primaire) et en 1er et id uf en second !

    bon je viens de comprendre pourquoi mes champs étaient inversés...car j'avais écrit mes "input hidden" à l'envers !

    de plus en écrivant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="id_uf" value="<?php echo $id_uf; ?>"/>
    (j'ai rajouté echo devant $id_uf) le print_r[$_POST] renvois la valeur de la variable $id_uf !

    par contre pour la seconde ( qui est tres importante pour la suite)...NADA !)

  17. #17
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    Hé bien si tu n'as rien dans $_POST['id'] c'est soit que le visiteur n'a rien saisi dans ce champ s'il est public, soit que tu ne l'as pas correctement renseigné s'il est hidden. Montre nous le code correspondant si tu n'arrives pas à trouver la faille.

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Points : 28
    Points
    28
    Par défaut
    alors bon mon code à un peu changé par rapport à celui que j'ai posté au début!
    voici la page du 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
    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
    <?php
    // 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 
    		    (	".
    				"'',".
    				"'".$_REQUEST['id_uf']."',".			
    				"'".$_REQUEST['nom']."',".
    				"'".$_REQUEST['prenom']."',".
    				"'".$_REQUEST['naissance']."',".
    				"'".$_REQUEST['sexe']."',".
    				"'".$_REQUEST['chambre']."',
    				'1')";
    			mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
    			$id=mysql_insert_id();			
     
    	mysql_close ($connexion);
     
    }
    include ("includes/header.inc.php");
    ?>
    <p align="left">:: Ajouter un patient
    <form action="choix_ajout_patient.php" method="post">
    <input type="hidden" name="enregistre" value="oui"/>
    <input type="hidden" name="id" value="<?php echo '$id'; ?>"/>
    <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
     
    /*	echo "le dernier id enregistré est le n° : $id"; */
    	 include ("includes/footer.inc.php");
    ?>
    </tr>
    </table>
    <?php
    include ("includes/footer2.inc.php");
    ?>
    voici ma page ( ou pour l'instant je cherche à recupérer mes variable envoyer dessus ) qui va me permettre de donner un choix à l'utilisateur !
    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
    <?php
     
    // Reporte toutes les erreurs PHP
    error_reporting(-1);
    ?>
     
    <?php
    $id_uf=$_REQUEST['id_uf'];
    $id=$_REQUEST['id'];
    echo "uf du service =$id_uf";
    echo"<br/>";
     
    echo "uf du service =".$id;
     
    include ("includes/header.inc.php");
    echo "la table a été correctement charger";
    echo "<pre>", print_r($_POST, true), "<pre>";
    ?>
    <?php
     
     
    	 include ("includes/footer.inc.php");
    ?>
    </tr>
    </table>
    <?php
    include ("includes/footer2.inc.php");
    ?>

  19. #19
    Membre éprouvé Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Points : 933
    Points
    933
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="id" value="<?php echo '$id'; ?>"/>
    Hum...

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 67
    Points : 28
    Points
    28
    Par défaut
    lol...oui je sais !!!!!! mais je testé un peu tout car bizzarement lorsque j'ecrit la meme chose que ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="hidden" name="id" value="<?php echo $id; ?>"/>
             <input type="hidden" name="id_uf" value="<?php echo $id_uf; "/>
    et bien je recupere bien la valeur de $id_uf mais pas celle de $id....
    donc j'avoue que j'ai testé un peu tout et n'importequoi....

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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