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 :

modifier les valeurs d'un tableau par un formulaire


Sujet :

Langage PHP

  1. #1
    Membre averti Avatar de dr_feelgood
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 292
    Points : 373
    Points
    373
    Par défaut modifier les valeurs d'un tableau par un formulaire
    Bonjour

    Je m’essaye à PHP, après une bonne expérience sur ACCES. Bref je débute et je découvre.

    Dans mon projet, il s’agit de mettre à disposition de médecins une base de données, qui leur permet d’indiquer le nombre de consultations mensuelles pour certains patients.

    Je récupère les numéros et les identifiants des patients, et un formulaire leur permet de renseigner le nombre de consultations par patient.

    J’ai donc à faire un formulaire avec des input, provenant d’un tableau récupéré par une sélection de la base de données.

    Je sèche sur cette partie, ne sachant pas bien comment inclure le PHP du tableau $nb_rdv[$i] (nombre de rendez- vous) dans le cod HTML du formulaire.


    Voici la partie du code posant problème :

    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
     
    <?php
    	if ($microstructure !=""){
    		echo '<table>';
    		echo '<TR><TD WIDTH=50>&nbsp </td><TD WIDTH=60>numero</TD><TD WIDTH=120>identifiant</TD><TD WIDTH=130>nombre de  RDV</TD></TR>';
    		$i = 1;
    		while ($data = mysql_fetch_array($req2)) { 
    			$numero[$i] = $data['numero'];
    			$numero_identifiant[$i] = $data['numero_identifiant'];
    			$nb_rdv[$i] = "";
    			echo '<TR> <TD> &nbsp </td><TD>'.$numero[$i].'</TD><TD>'.$numero_identifiant[$i].'</TD>';
     
    			// c'est cette ligne qui me pose  problème  !!!!!! 
     
    			echo '<TD><input type="text" name="$nb_rdv[$i] size="50" value='. printf("%s", $nb_rdv[$i]). ' /></TD>';
    			echo '</TR>';
    			$i=$i+1;
     
            }
    		echo '</table>';
    	}
     
    	?>

    Et là le code complet de la page

    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
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    <html>
    	<head>
    	  <title>RMS FMAM</title>
    	</head>
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" href="css/maia.css" type="text/css">
    </HEAD>
    <body>
    		<h3>saisie des fiches médicales d'activité mensuelle</h3><br>
     
    <?php
    $base = mysql_connect ('localhost', 'root', '');  
    mysql_select_db ('maiatest', $base);
     
    $sql = 'SELECT num_micro, nom_micro FROM t_micro WHERE active = 1 ';  
     
    // On lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas (or die)  
    $req1 = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
     
     
    $nom_mois=array("","janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre");
    $numero=array();
    $numero_identifiant=array();
    $nb_rdv=array();
     
    #--------------------------------------------------------------------
    #	Initialisation des variables HHTP POST VARS
    if(isset($_POST['valider'])){
    	$microstructure = $_POST['microstructure'];
    	$mois = $_POST['mois'];
    	$annee = $_POST['annee'];
     
    	$sql = 'SELECT numero,numero_identifiant FROM `patients` WHERE Not(sortant) and num_micro = '.$microstructure.' ORDER BY numero_identifiant';
    	$req2 = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    }
    else{
    	$microstructure = "";
    	$mois = "";
    	$annee = date("Y");
    }
    ?>
     
    <form method="post" action="formulaire_essai1.php">	
        <select  name="microstructure">	
    	<?php	                       
            //boucle
            while ($data = mysql_fetch_array($req1)) { 
    			if ($microstructure == $data['num_micro']){
    				echo '<option value="'.$data['num_micro'].'" selected>'.$data['nom_micro'].'</option>';    
    			}
    			else {
    				echo '<option value="'.$data['num_micro'].'">'.$data['nom_micro'].'</option>';
    			}
            }  
    		//On libère la mémoire mobilisée pour cette requête dans sql
            //$data de PHP lui est toujours accessible !
            mysql_free_result ($req1);  
     
            //On ferme sql
            mysql_close ();  
    	?>
    	</select>
    	<select name="mois">
    	<?php
    	for($i=1;$i<13;$i++){
    		if($mois == $i){
    			echo '<option value="'.$i.'" selected>'.$nom_mois[$i].'</option>';
    		}
    		else{
    			echo '<option value="'.$i.'">'.$nom_mois[$i].'</option>';
    		}
    	}
        ?>
    	</select>
    	<select name="annee">
    	<?php
    	$j=date("Y")-1;
    	$k= date("Y")+1;
    	for($i= $j ;$i < $k ;$i++){
    		if ($annee == $i){
    			echo '<option value="'.$i.'" selected>'.$i.'</option>';
    		}
    		else{
    			echo '<option value="'.$i.'">'.$i.'</option>';
    		}
    	}
        ?>
    	</select>
     
    	<input type="submit" name="annuler" value="Annuler"/><input type="submit" name="valider" value="Valider"/><br><br>
        <?php
    	if ($microstructure !=""){
    		echo '<table>';
    		echo '<TR><TD WIDTH=50>&nbsp </td><TD WIDTH=60>numero</TD><TD WIDTH=120>identifiant</TD><TD WIDTH=130>nombre de  RDV</TD></TR>';
    		$i = 1;
    		while ($data = mysql_fetch_array($req2)) { 
    			$numero[$i] = $data['numero'];
    			$numero_identifiant[$i] = $data['numero_identifiant'];
    			$nb_rdv[$i] = "";
    			echo '<TR> <TD> &nbsp </td><TD>'.$numero[$i].'</TD><TD>'.$numero_identifiant[$i].'</TD>';
     
    			// c'est cette ligne qui me pose  problème  !!!!!! 
     
    			echo '<TD><input type="text" name="$nb_rdv[$i] size="50" value='. printf("%s", $nb_rdv[$i]). ' /></TD>';
    			echo '</TR>';
    			$i=$i+1;
     
            }
    		echo '</table>';
    	}
     
    	?>
    </form>
     
    	</body>
     
    </html>
    Merci de votre aide

    Dr Feelgood
    .
    less is more

    vous pouvez faire une recherche dans le forum
    et également une recherche dans les FAQ

  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
    Je ne comprend pas bien ce que tu fais avec ce $i.
    je suppose que tu veux stocker le nb_rdv dans ta base de données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if ($microstructure !=""){
     
    		while ($data = mysql_fetch_array($req2)) { 
    			$numero[$i] = $data['numero'];
    			$numero_identifiant[$i] = ;
    			$nb_rdv[$i] = "";
    			echo '<TR> <TD> &nbsp </td><TD>'.$data['numero'].'</TD><TD>'.$data['numero_identifiant'].'</TD>';
    			echo '<TD><input type="text" name="nb_rdv[' . $data['id'] .'] value="' . $data['nb_rdv'] . '" size="50"  /></TD>';
    			echo '</TR>';
     
            }
    Ici j'ai mis $data['id'] dans le nom du champ du nb_rdv où id correspond à l'id de l'enregistrement dans ta base.
    Cela te permet de mettre à jour tes enregistrements simplement.

    Au passage, evite de donner des noms vagues à tes variables, c'est le meilleur moyen de te perdre. Par exemple ici tu te sers de $i pour parcourir des années, ensuite tu t'en sers pour parcourir des enregistrements.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti Avatar de dr_feelgood
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2005
    Messages : 292
    Points : 373
    Points
    373
    Par défaut
    Merci 'sabotage'

    En fait je n'utiliserai pas l'ID de l'enregistrement, car par après je vais ajouter le nombre de rdv dans une autre table.
    pour savoir de quel patient il s'agit, c'est $data['numero'] qui me permet d'identifier le patient.
    Je vais essayer ta solution, en remplaçant id par numero. Le nom de cette variable est provisoire, puisque j'en suis a faire des essais.
    Je l'appelerai sans doute numero_patient.
    J'imagine que dans ta solution, l'ID est a chercher auparavant la dans la table en modifiant le SELECT ???

    Quant à l'utilisation de ces $i, $j and $k, je les utilise comme des variables locales d'incrémentation (dont je n'ai pas besoin de leur valeur plus tard)
    Effectivement, il ne s'agit pas de confondre... Merci du conseil

    J'essaie et je reviens si nécéssaire.

    Un grand merci
    .
    less is more

    vous pouvez faire une recherche dans le forum
    et également une recherche dans les FAQ

Discussions similaires

  1. Je n'arrive pas a modifier les valeurs de mon tableau via mon UserForm
    Par Patouillou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/02/2015, 16h15
  2. Réponses: 1
    Dernier message: 23/12/2010, 10h01
  3. Réponses: 3
    Dernier message: 30/11/2009, 10h36
  4. Modifier et sauvegarder les valeurs d'un tableau
    Par Viscapon dans le forum Struts 1
    Réponses: 42
    Dernier message: 07/11/2008, 22h28
  5. Réponses: 3
    Dernier message: 12/09/2005, 16h38

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