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 :

Mettre à jour table MySQL avec PHP


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Mettre à jour table MySQL avec PHP
    Bonjour tout le monde,

    J'essaie de mettre une table MYSQL nommée "etudiants" à jour.

    J'obtiens bien les valeurs de la table dans des zones de texte.

    Je peux alors modifier les valeurs mais lorsque je clic sur le bouton, la table ne se met pas à jour.

    Le nombre de ligne est bien envoyé à l'autre page (MettreAJour qui est l'action du formulaire).

    Je vous laisse mon code, ça sera je pense, un peu plus parlant :

    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
    <?php
     
    $compteur = 0;
     
     
    # script qui permet de créer des zones de texte à la volée et d'afficher le nom des champs de la table
    # variable qui contient le nom de ma base de données.
    $dbname = 'deliberations';
     
     
    $link = mysql_connect('localhost', 'root', 'mdp');
    	if(!$link)	  
    	 {
       		echo 'Impossible de se connecter à MySQL';
       		exit;
    	}
     
    	// Rendre la base de données deliberation, la base courante
    $db_selected = mysql_select_db($dbname, $link);
    if (!$db_selected) 
    	{
    	   die ('Impossible de sélectionner la base de données : ' . mysql_error());
    	}
     
    /*echo '<form action="MettreAJour.php?NbLignes='.$compteur.'" method="post" name="frmSaisie" id="frmSaisie">';
    echo '<table border="1">';
    $query = mysql_query("SELECT * FROM .$_POST[select_Nom_Tables] LIMIT 20") or die (mysql_error());*/
     
    echo '<table border="1">';
    $query = mysql_query("SELECT * FROM .$_POST[select_Nom_Tables] LIMIT 20") or die (mysql_error());
    echo '<form action="MettreAJour.php?NbLignes='.mysql_num_rows($query).'" method="post" name="frmSaisie" id="frmSaisie">';
     
     
     
    echo '<tr>';
    for($i=0;$i<mysql_num_fields($query);$i++)
        {
        echo '<th>'.mysql_field_name($query,$i).'</th>';
        }
    echo '</tr>';
    while($row = mysql_fetch_array($query,MYSQL_NUM))
        {
    	$compteur+=1;
    	echo 'compteur -->'.$compteur;
        echo '<tr>';
        foreach($row as $value)
            {
     
    	echo '<td> <textarea>'.$value.'</textarea> <input name="'.mysql_field_name.$compteur.'" type="hidden" id="txtMatricule'.$compteur.'"value=""></td>';
    	#echo '<td> <textarea>'.$value.'</textarea> <input name="'.mysql_field_name.$compteur.'" type="text" id="txtMatricule"'.$compteur.'value="'.mysql_field_name.$compteur.'"></td>';
         #   }
     
     
    }
    echo '</tr>';
        }
    echo '<input type="submit" name="Submit" value="Mettre la table à jour" />' ; 
     
    echo '</p></form>';
    	echo '</table>';
     
    ?>
    et voic le code de "MettreAJour.php" qui contient le code SQL qui devrait mettre à jour la table :

    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
     
     
    <?php
     
     
    # script qui permet de créer des zones de texte à la volée et d'afficher le nom des champs de la table
    # variable qui contient le nom de ma base de données.
    $dbname = 'deliberations';
    $compteur = 0;
     
     
    $link = mysql_connect('localhost', 'root', 'mdp');
    	if(!$link)	  
    	 {
       		echo 'Impossible de se connecter à MySQL';
       		exit;
    	}
     
    	// Rendre la base de données deliberation, la base courante
    $db_selected = mysql_select_db($dbname, $link);
    if (!$db_selected) 
    	{
    	   die ('Impossible de sélectionner la base de données : ' . mysql_error());
    	}
     
    $NbLignes = $_GET["NbLignes"];
     
    echo '&NbLignes vaut '.$NbLignes;
     
    for ($i = 0; $i < $NbLignes;$i++)
    { 
         $Matricule = $_REQUEST["txtMatricule".i];
    	 $Nom = $_REQUEST["txtNom".i];
    	 $Prenom = $_REQUEST["txtPrenom".i];
    	 $DateDeNaissance = $_REQUEST["txtDateDeNaissance".i];
    	 $Email = $_REQUEST["txtEmail".i];
    	 $Photo = $_REQUEST["txtPhoto".i];
     
     
     
    $txtSQL = "" ;
    $txtSQL = "update [etudiants] set [Nom_Et] = '".$Nom ."' where  [Matricule_Et] = '".$Matricule."'" ;
     
     
     
    }
     
     
    ?>
    Merci d'avance pour votre aide.

    beegees

  2. #2
    Membre averti Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 342
    Points
    342
    Par défaut
    sans trop regarder le code en profondeur, j'aurais pas mis de crochets dans ta requete UPDATE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req = "UPDATE table SET value='".$value."' WHERE id='".$id."';

  3. #3
    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
    J'ajouterais qu'on n'insere pas dans une requete des données saisies par un utilisateur sans les avoir controlées.
    Dans le cas contraire un utilisateur malveillant, en saisissant un matricule déformé pourrait modifier tous les enregistrements de ta table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Matricule = mysql_real_escape_string($_REQUEST["txtMatricule".i]);

  4. #4
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par beejeridou Voir le message
    sans trop regarder le code en profondeur, j'aurais pas mis de crochets dans ta requete UPDATE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $req = "UPDATE table SET value='".$value."' WHERE id='".$id."';
    Salut,

    Merci pour ta réponse.

    J'ai vu qu'il fallait mettre mysql_query avant la requête, ça donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("UPDATE 'etudiants' SET $Nom_Et='$Nom' WHERE Matricule_Et=$Matricule");
    Qu'en penses-tu ?

    ça ne fonctionne pas encore mais ça bouge à grand pas.

    Merci encore pour l'aide.

    beegees

    Citation Envoyé par sabotage Voir le message
    J'ajouterais qu'on n'insere pas dans une requete des données saisies par un utilisateur sans les avoir controlées.
    Dans le cas contraire un utilisateur malveillant, en saisissant un matricule déformé pourrait modifier tous les enregistrements de ta table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Matricule = mysql_real_escape_string($_REQUEST["txtMatricule".i]);
    Salut,

    Merci pour ta réponse hyper intéressante.

    Ce que tu me proposes, c'est l'étape 2 dans mon algorithme, ce sont des améliorations que j'apporterai plus tard mais je ne connaissais pas cette fonction, merci.

    beegees

    Message pour vous deux (et pour les autres) :

    Je pense que le problème vient en fait d'ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $Matricule = $_REQUEST["txtMatricule".i];
    Pour éviter de devoir changer le code lors d'un ajout d'une table, j'ai essayé de rendre le plus générique possible mon code en faisant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<td> <textarea>'.$value.'</textarea> <input name="'.mysql_field_name.$compteur.'" type="hidden" id="txtMatricule'.$compteur.'"value=""></td>';
    txtMatriucle n'existe donc pas.

    Je l'ai donc remplacé par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Matricule = $_REQUEST[mysql_field_name.i];
    Je ne sais pas si cela est permis.

    idem dans la chaine SQL update.

    Est-il possible vue que mysql_field_name se trouve dans une autre page que la chaine SQL l'utilise ?

    beegees

  5. #5
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Matricule = $_REQUEST[mysql_field_name.i];
    c'est quoi ce "i" que se ballade ?

  6. #6
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Matricule = $_REQUEST[mysql_field_name.i];
    c'est quoi ce "i" que se ballade ?
    Re,

    Merci pour ta réponse.

    ça ne fonctionne toujours pas

    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
    for ($i = 0; $i < $NbLignes;$i++)
    { 
    	 $Matricule = $_REQUEST[mysql_field_name.i];
    	 $Nom = $_REQUEST[mysql_field_name.i];
    	 $Prenom = $_REQUEST[mysql_field_name.i];
    	 $DateDeNaissance = $_REQUEST[mysql_field_name.i];
    	 $Email = $_REQUEST[mysql_field_name.i];
    	 $Photo = $_REQUEST[mysql_field_name.i];
     
     
     
    $txtSQL = "" ;
    $txtSQL = "update etudiants set mysql_field_name = '".$Nom ."' where  Matricule_Et = '".$Matricule."'" ;
     
     
    }
    Le i est là pour savoir quelle ligne je dois mettre à jour.

    Encore

  7. #7
    Membre averti Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 342
    Points
    342
    Par défaut
    Au lieu de galerer à écrire le compteur sur place, je le mettrai avant moi, je m'explique:
    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
     
    //ton code:
    <input type="text" id="txtMatricule'.$compteur.' name="txtMatricule'.$compteur."/>
     
    <?php
    //ma proposition de génération d'identifiants
    ?>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <?php
    for($i=1; $i<10; $i++) {
        //le echo sert pour les tests
        echo $initialise = "txtMatricule".$i;
        ?>
        <input type="text" name="<?php echo $initialise; ?>" value="<?php echo $initialise; ?>" /><br />
        <?php
    }
    ?>
    	<input type="submit" value="envoyer" />
    </form>
    <?php
    // et pour récupérer la valeur de tes champs
    for($i=1; $i<10; $i++) {
    	$recupere = "txtMatricule".$i;
    	if(isset($_POST[$recupere]) && $_POST[$recupere] != "") {
    	    echo $_POST[$recupere]."<br />";
    	}
    	else {
    		echo "Le champ <b>".$recupere."</b> est vide ou n'existe pas.<br />";
    	}
    }
    ?>
    Voilà, j'ai testé, ca fonctionne, essaye ce code sur une page à part, pour etre sur. Bon, c'est juste un exemple, car ici, la boucle for n'est peut-etre pas le meilleur moyen de générer les identifiants surtout si on ne sait pas combien en générer à l'avance (si c'est dynamique).

  8. #8
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par beejeridou Voir le message
    Au lieu de galerer à écrire le compteur sur place, je le mettrai avant moi, je m'explique:
    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
     
    //ton code:
    <input type="text" id="txtMatricule'.$compteur.' name="txtMatricule'.$compteur."/>
     
    <?php
    //ma proposition de génération d'identifiants
    ?>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <?php
    for($i=1; $i<10; $i++) {
        //le echo sert pour les tests
        echo $initialise = "txtMatricule".$i;
        ?>
        <input type="text" name="<?php echo $initialise; ?>" value="<?php echo $initialise; ?>" /><br />
        <?php
    }
    ?>
    	<input type="submit" value="envoyer" />
    </form>
    <?php
    // et pour récupérer la valeur de tes champs
    for($i=1; $i<10; $i++) {
    	$recupere = "txtMatricule".$i;
    	if(isset($_POST[$recupere]) && $_POST[$recupere] != "") {
    	    echo $_POST[$recupere]."<br />";
    	}
    	else {
    		echo "Le champ <b>".$recupere."</b> est vide ou n'existe pas.<br />";
    	}
    }
    ?>
    Voilà, j'ai testé, ca fonctionne, essaye ce code sur une page à part, pour etre sur. Bon, c'est juste un exemple, car ici, la boucle for n'est peut-etre pas le meilleur moyen de générer les identifiants surtout si on ne sait pas combien en générer à l'avance (si c'est dynamique).
    Merci pour ta réponse.

    J'ai tenté d'intégrer ton code dans le mien :

    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
    <?php
     
    $compteur = 0;
     
     
    # script qui permet de créer des zones de texte à la volée et d'afficher le nom des champs de la table
    # variable qui contient le nom de ma base de données.
    $dbname = 'deliberations';
     
     
    $link = mysql_connect('localhost', 'root', 'mdp');
    	if(!$link)	  
    	 {
       		echo 'Impossible de se connecter à MySQL';
       		exit;
    	}
     
    	// Rendre la base de données deliberation, la base courante
    $db_selected = mysql_select_db($dbname, $link);
    if (!$db_selected) 
    	{
    	   die ('Impossible de sélectionner la base de données : ' . mysql_error());
    	}
     
    /*echo '<form action="MettreAJour.php?NbLignes='.$compteur.'" method="post" name="frmSaisie" id="frmSaisie">';
    echo '<table border="1">';
    $query = mysql_query("SELECT * FROM .$_POST[select_Nom_Tables] LIMIT 20") or die (mysql_error());*/
     
    echo '<table border="1">';
    $query = mysql_query("SELECT * FROM .$_POST[select_Nom_Tables] LIMIT 20") or die (mysql_error());
    echo '<form action="MettreAJour.php?NbLignes='.mysql_num_rows($query).'" method="post" name="frmSaisie" id="frmSaisie">';
     
     
     
    echo '<tr>';
    for($i=0;$i<mysql_num_fields($query);$i++)
        {
        echo '<th>'.mysql_field_name($query,$i).'</th>';
        }
    echo '</tr>';
    while($row = mysql_fetch_array($query,MYSQL_NUM))
        {
    	$compteur+=1;
    	echo 'compteur -->'.$compteur;
        echo '<tr>';
        foreach($row as $value)
            {
     
    <input type="text" id="txtMatricule'.$compteur.' name="txtMatricule'.$compteur."/>
    
    <?php
    //ma proposition de génération d'identifiants
    ?>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <?php
    for($i=1; $i<10; $i++) {
        //le echo sert pour les tests
        echo $initialise = "txtMatricule".$i;
        ?>
        <input type="text" name="<?php echo $initialise; ?>" value="<?php echo $initialise; ?>" /><br />
        <?php
    }
    ?>
    	<input type="submit" value="envoyer" />
    </form>
    <?php
    // et pour récupérer la valeur de tes champs
    for($i=1; $i<10; $i++) {
    	$recupere = "txtMatricule".$i;
    	if(isset($_POST[$recupere]) && $_POST[$recupere] != "") {
    	    echo $_POST[$recupere]."<br />";
    	}
    	else {
    		echo "Le champ <b>".$recupere."</b> est vide ou n'existe pas.<br />";
    	}
    }
    ?>
    	#echo '<td> <textarea>'.$value.'</textarea> <input name="'.mysql_field_name.$compteur.'" type="text" id="txtMatricule"'.$compteur.'value="'.mysql_field_name.$compteur.'"></td>';
         #   }
     
     
    }
    echo '</tr>';
        }
    echo '<input type="submit" name="Submit" value="Mettre la table à jour" />' ; 
     
    echo '</p></form>';
    	echo '</table>';
     
    ?>
    Saurais-tu y jeter un coup d'oeil stp ?

    Je te remercie encore.

  9. #9
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le i est là pour savoir quelle ligne je dois mettre à jour.
    $_REQUEST[mysql_field_name][$i]

  10. #10
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le i est là pour savoir quelle ligne je dois mettre à jour.
    $_REQUEST[mysql_field_name][$i]
    Re,

    Merci pour ta réponse.

    Je viens de découvrir un prolbème, j'ai ouvert la source du code HTML après génération de la page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <table border="1"><form action="MettreAJour.php?NbLignes=1" method="post" name="frmSaisie" id="frmSaisie"><tr><th>MATRICULE_ET</th><th>NOM_ET</th><th>PRENOM_ET</th></tr>compteur -->1<tr><td> <textarea>000000</textarea> <input name="mysql_field_name1" type="hidden" id="txtMatricule1"value=""></td><td> <textarea>Delport</textarea> <input name="mysql_field_name1" type="hidden" id="txtMatricule1"value=""></td><td> <textarea>Cédric</textarea> <input name="mysql_field_name1" type="hidden" id="txtMatricule1"value=""></td></tr><input type="submit" name="Submit" value="Mettre la table à jour" /></p></form></table>
     
    </p></td>
    Le nom des hidden areas sont tous mysql_field_name1

    Je pense que l'origine du problème est là ?

    Merci encore.

    beegees

  11. #11
    Membre averti Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 342
    Points
    342
    Par défaut
    J'ai modifié ton code, et ca fonctionne^^

    Bref, essaie le dans une page vierge pour tes essais et mets les bons parametres (à la ligne 5, 27 et 38).

    tiens nous au jus!

    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
     
    <?php
    # script qui permet de créer des zones de texte à la volée et d'afficher le nom des champs de la table
     
    # variable qui contient le nom de ma base de données.
    $dbname = 'nom de ta table';
     
    $link = mysql_connect('localhost', 'root', 'mdp');
    	if(!$link)	  
    	 {
       		echo 'Impossible de se connecter à MySQL';
       		exit;
    	}
     
    // Rendre la base de données deliberation, la base courante
    $db_selected = mysql_select_db($dbname, $link);
    if (!$db_selected) 
    	{
    	   die ('Impossible de sélectionner la base de données : ' . mysql_error());
    	}
    ?>
    <table border="0" style="border:1px solid black;">
    <?php
    if(isset($_POST['select_Nom_Tables']) && $_POST['select_Nom_Tables'] != "") {
    	$table = $_POST['select_Nom_Tables'];
    }
    else {
    	$table = "table_par_defaut"; //mettre la table par defaut
    }
    $req = "SELECT * FROM ".$table." LIMIT 20";
    $query = mysql_query($req) or die (mysql_error());
    $NbLignes = mysql_num_rows($query);
    ?>
    <form action="MettreAJour.php?NbLignes=<?php echo $NbLignes; ?>" method="post" name="frmSaisie" id="frmSaisie">
    <?php
    $compteur = 0;
    while($row = mysql_fetch_array($query)) {
    	echo '<tr>';
    	echo '<td>'.$row['nom_du_champ'].'</td>'; // mettre le nom du champ ici
    	$compteur++;
    	$initialise = "txtMatricule".$compteur;
    	?>
    	<td>
    		<input type="text" name="<?php echo $initialise; ?>" value="<?php echo $initialise; ?>" />
    	</td>
    	</tr>
        <?php
    }
    echo "</table>";
    echo "<input type='submit' value='envoyer' /><br />";
    echo "</form>";
     
    // et pour récupérer la valeur de tes champs
    for($i=1; $i<$NbLignes; $i++) {
    	$recupere = "txtMatricule".$i;
    	if(isset($_POST[$recupere]) && $_POST[$recupere] != "") {
    	    echo $_POST[$recupere]."<br />";
    	}
    	else {
    		echo "Le champ <b>".$recupere."</b> est vide ou n'existe pas.<br />";
    	}
    }
    ?>

  12. #12
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,

    Un tout grand merci pour ton dévouement et pour le temps que tu me consacre

    J'ai donc fais un copié/collé de ton code dans une page vide.

    J'ai modifié les lignes que tu m'as indiqué.

    J'entre un matricule et quand je clic sur le bouton j'obtiens ce message :

    The requested URL /Scripts/MettreAJour.php was not found on this server.
    Etrange car il existe sur le serveur.

    Qu'en penses-tu ?

    Encore un grand merci à toi.

  13. #13
    Membre averti Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 342
    Points
    342
    Par défaut
    c'est tout simplement du au fait que ta page mettreAJour.php n'existe pas.

    tu dois modifier l'action dans le form.
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form method="post" action="page_qui_existe.php" >
    Voila, ca devrait marcher

  14. #14
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par beejeridou Voir le message
    c'est tout simplement du au fait que ta page mettreAJour.php n'existe pas.

    tu dois modifier l'action dans le form.
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form method="post" action="page_qui_existe.php" >
    Voila, ca devrait marcher
    Re,

    La page MettreAJour.php existe et est sur le serveur.

    Je ne comprends pas.

    Est-ce normal que quand j'exécute ton code je n'ai qu'un seul textarea ?

    Merci encore et sorry pour le dérangement.

  15. #15
    Membre averti Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 342
    Points
    342
    Par défaut
    essaye, juste pour essayer de mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    regarde et dis nous.

    Sinon, pour le textearea, à toi de le rajouter quand tout fonctionnera! hihi

  16. #16
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par beejeridou Voir le message
    essaye, juste pour essayer de mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    regarde et dis nous.

    Sinon, pour le textearea, à toi de le rajouter quand tout fonctionnera! hihi
    Bon, malheureusement, ça ne donne rien.

    Je vais devoir recommencé tout à zéro et essayer un update tout simple (chose que je n'ai pas encore fait) ensuite j'essaierai de le transformer en générique.

    Je voulais te remericer sincèrement pour le temps que tu as passé sur mon code.

    Très sympa !

    beegees

  17. #17
    Membre averti Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 342
    Points
    342
    Par défaut
    c'est bizarre tout de même, chez moi, tout fonctionne...
    Bon courage pour la suite!

Discussions similaires

  1. [MySQL] Créer un table Mysql avec php
    Par xunil2003 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/02/2014, 14h05
  2. [MySQL] Mise à jour d'une table mysql avec php
    Par glodybiss4 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 09/01/2012, 10h41
  3. [XL-2007] Mettre à jour table pivot avec macro et loop
    Par stsc01 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/01/2011, 23h09
  4. Réponses: 11
    Dernier message: 11/10/2009, 05h23
  5. [MySQL] Mettre à jour une table mysql avec un fichier xml ou csv
    Par pasbonte dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/02/2009, 08h56

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