Partage
  • Partager sur Facebook
  • Partager sur Twitter

modification d'une table avec un formulaire

problème UPDATE

Sujet résolu
    21 mars 2011 à 14:27:25

    Bonjour à tous.
    Mon problème (immense problème !) est le suivant :
    J'ai créé une base de données avec PhpAdmyn, qui comporte une table de 3 champs.
    J'ai créé un formulaire dans lequel sont récupérées les données de ma table.
    Jusque-là, pas de problème; lorsque je charge la page, le formulaire se rempli correctement.

    Ce que j'aimerai pouvoir faire, c'est modifier les valeurs des différents champs de ma table directement dans le formulaire... et là, ça ne marche pas!
    J'ai cherché, cherché sur le web sans trouver un code qui marche. C'est sûrement moi qui ne suis pas doué...
    Si quelqu'un pouvait me donner un coup de main, il serait le bienvenu.

    Voici le script:

    <?php
    $host="localhost";
    $username="login";
    $password="password";
    $db_name="nom-de-la-base";
    $tbl_name="nom-de-la-table";
    
    // Connect to server and select databse.
    mysql_connect("$host", "$username", "$password")or die("cannot connect");
    mysql_select_db("$db_name")or die("cannot select DB");
    
    $sql="SELECT * FROM $tbl_name";
    $result=mysql_query($sql);
    
    // Count table rows
    $count=mysql_num_rows($result);
    ?>
    <p align="center"><strong>MODIFICATION DES TARIFS</strong></p>
    <table align="center" border="0" cellspacing="1" cellpadding="0">
    <form name="form1" method="post" action="">
    <tr>
    <td>
    <table align="center" border="0" cellspacing="1" cellpadding="0">
    
    
    <tr>
    <td width="10" align="center"><strong>Id</strong></td>
    <td width="100" align="center"><strong>Couleur</strong></td>
    <td width="100" align="center"><strong>Prix</strong></td>
    </tr>
    <?php
    while($rows=mysql_fetch_array($result)){
    ?>
    <tr>
    <td align="center"><? $id[]=$rows['id']; ?><? echo $rows['id']; ?></td>
    <td align="center"><? echo $rows['couleur']; ?></td>
    <td align="center"><input name="prix[]" type="text" id="prix" value="<? echo $rows['prix']; ?>"></td>
    </tr>
    <?php
    }
    ?>
    <tr>
    <td colspan="4" align="center">
        <input type="submit" name="Submit" value="Modifier">
    </td>
    </tr>
    </table>
    </td>
    </tr>
    </form>
    </table>
    
      <?php
    
    // en cliquant sur le bouton Submit, je devrais modifier la table... c'est là que ça coince !
    // il ne se passe rien. La page se recharge avec l'ancienne valeur sans aucun message d'erreur.
    
    if($Submit){
    for($i=0;$i<$count;$i++){
    $sql1="UPDATE $tbl_name SET prix='$prix[$i]', id='$id[$i]'";
    $result1=mysql_query($sql1);
    }
    }
    mysql_close();
    ?>
    
    • Partager sur Facebook
    • Partager sur Twitter
      21 mars 2011 à 14:33:02

      Va falloir aller revoir le tuto sur les formulaires, aprce que tu récupères pas les données là...
      • Partager sur Facebook
      • Partager sur Twitter
        21 mars 2011 à 18:48:50

        Salut,

        Ton formulaire n'a pas d'actions.
        Il faut que tu le fasses rediriger vers la même page.

        Ensuite, à la place de ton if($submit), tu mets if(isset($_POST['prix'])).

        A+
        • Partager sur Facebook
        • Partager sur Twitter
          22 mars 2011 à 0:27:17

          Merci BolDog, j'ai fait rediriger vers la même page.
          En laissant if($Submit), le champs 'prix' se met à 0 et ce, quelque soit la valeur que j'entre.
          Si je remplace if($Submit) par if(isset($_POST['prix'])), il ne se passe rien... comme avant.
          Je ne comprends pas.
          • Partager sur Facebook
          • Partager sur Twitter
            22 mars 2011 à 7:22:17

            Tu as été revoir le tutoriel ? Tu sais ce que c'est les variables $_POST ??
            • Partager sur Facebook
            • Partager sur Twitter
              22 mars 2011 à 7:39:03

              Salut
              <?php
              $sql1="UPDATE $tbl_name SET prix='$prix[$i]', id='$id[$i]'"; ?>
              


              Il ne connait pas: $prix[$i], faut insérer $_POST['prix'] à la place.

              Ensuite ton $id[$i] pose aussi problème, il faut aussi récupérer la valeur avec un $_POST.


              • Partager sur Facebook
              • Partager sur Twitter
                22 mars 2011 à 8:27:50

                Merci BolDog d'essayer de m'aider, mais je crois que mon cas est désespéré. Je n'y comprends rien. à la base, je suis infographiste, je me suis lancé là-dedans pour faire plaisir à une amie (j'ai cru que ce serait simple !) mais c'est trop hard. Et je n'ai pas vraiment envie d'aller voir les tutoriels et de savoir ce que c'est que les variables $_POST.
                Je cherchais juste un script.

                Merci quand-même pour le temps perdu.
                • Partager sur Facebook
                • Partager sur Twitter
                  22 mars 2011 à 8:30:26

                  Salut,

                  Si jamais tu as des problèmes ou questions, envoies moi un mp et je t'aide volontiers.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 mars 2011 à 8:38:33

                    Ok, même si je ne sais pas ce que c'est qu'un "mp".
                    Salut.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    modification d'une table avec un formulaire

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown