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. #21
    Membre émérite 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
    Par défaut
    Oui, mais du coup tu as caché l'éléphant.

    Donc : si avec la bonne écriture tu n'as rien dans $id, c'est que dans $id... il n'y a rien. Ou plutôt... presque rien. Disons, au hasard, une chaîne vide. Or il n'y a qu'un endroit dans ton code d'où cela peut venir. Hum hum

  2. #22
    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
    de la ça je sais !
    mais le soucis c'est que dans mon "form" si je retourne sur mon formulaire :
    1/ ma table est alimentée
    2/ je récupère bien la valeur de la fonction dans $id.

    ce que je ne comprends pas c'est pourquoi je ne peux pas passer cette valeur sur une autre page après l'avoir récupérer....

  3. #23
    Membre émérite 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
    Par défaut
    Je ne comprends pas ce que tu veux dire par tes points 1 et 2 mais ce qui est absolument certain, c'est que le $_POST que tu reçois dans choix_ajout_patient.php contient exactement les valeurs des champs de ton formulaire. Si ces valeurs sont bonnes, alors je n'ai pas compris ton problème. Si ces valeurs sont fausses, c'est que l'initialisation est fausse.

    D'autre part, d'après ce que je vois de ton code, tu fais un INSERT en forçant la valeur de la colonne id avec une chaine vide. Je ne suis donc pas très étonné que le $id qui initialise ton formulaire contienne lui aussi une chaine vide. Pour autant que je sache, si tu veux utiliser l'auto-increment, il ne faut pas mentionner la colonne id dans ta requête.

  4. #24
    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
    ce que je veux dire c'est pour mon 1erement que si j'ecrit ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="ajout_patient.php" method="post">
    ( ajout_patient.php est ma page de formulaire) au lieu de ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="choix_ajout_patient.php" method="post">
    et bien je récupère la valeur de la fonction dans la variable $id. et je suis même capable de l'afficher comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /*echo"<br/>";
    			echo "la table a été correctement charger";
    			echo"<br/>";
    			echo "$id";*/
    pour petit 2 et bien comme je n'ai plus de message d'erreur ma table s'alimente donc normalement avec ce que contient mon formulaire ! voila !

    donc apres avoir lu ton post je ne savais pas que le fait de mettre un champs vide dans ma requete et bien en fait forcé la valeur de la colonne.
    donc j'ai réécrit ma requête comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $sql = "INSERT INTO patients (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=mysql_insert_id();
    comme tu peux le voir à la fin je veux recuperer la valeur de ma fonction dans $id : resultat apres avoir utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<pre>", print_r($_POST, true), "<pre>";
    :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Array
    (
        [enregistre] => oui
        [id] => 0
        [id_uf] => 1102
        [nom] => bataille
        [prenom] => marie
        [naissance] => 1973-05-23
        [sexe] => F
        [chambre] => 1312
    )
    ce qui indiquerait soit que $id est vide soit que la valeur de l'enregistrement est 0.
    en tout les cas la table n'as pas été alimentée !

    bon j'édite même si ça commence à ressembler à un roman.
    voila je crois avoir compris une chose :
    lorsque je recupere la valeur de mysql_insert_id dans la variable$id la valeur n'est récupérée que lorsque je click sur le bouton validé ! tant que je n'ai pas fait ça la variable $id n'existe pas : ( je précise que mon forme renvois sur ajout_patient.php donc je reste sur la même page)

    si j'alimente le formulaire tel qu'il est et que je valide :

    je m'aperçois donc que tant que je n'ai pas fais le submit : $id n'existe pas....
    lor

  5. #25
    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 j'ai trouvé la solution...j'aurais du faire ça dés le début !

    la page du formulaire d'une part
    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
    <?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*/
    ?>
     
    <?php
    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 $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
     
    include ("includes/footer.inc.php");
     
    ?>
    </tr>
    </table>
    <?php
    include ("includes/footer2.inc.php");
    ?>
    enfin ma page de traitement !
    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
    <?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.
    /* 
    */
    // Reporte toutes les erreurs PHP
    error_reporting(-1);
     
    include ("includes/header.inc.php");
    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_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=mysql_insert_id($connexion);
    }
    mysql_close ($connexion);
    $nom=$_POST['nom'];
    echo "l'id du patient est $id";
    echo "<br/>";
     
     
    echo "le patient $nom a été correctement ajouté";
    echo "<br/>";
    echo "Desirez-vous lui <a href='ajout_rdv.php?id=$id&id_uf=$id_uf'>ajouter</a> des rendez-vous ?<br/>";
    echo "Desirez-vous <a href='ajout_patient2.php?id_uf=$id_uf'>ajouter</a> un nouveau patient ?<br/>";
    echo " Sinon retournez à l'accueil ! ";
    include("includes/footer.inc.php");
    ?> 
    </tr>
    </table>
    <?php
    include ("includes/footer2.inc.php");
    ?>
    merci à vous d'avoir essayé de me faire comprendre ça...je pense surtout à toi Herode et désolais pour ce triple post !

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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