Partage
  • Partager sur Facebook
  • Partager sur Twitter

UPDATE

Mon code le fais sans que je le veuille

Sujet résolu
    7 juillet 2006 à 0:23:20

    Bonjour,

    Je fais un petit exercice pour jouer avec les bases de données.
    j'ai une liste déroulante qui est lié à la base de donnée et je veux l'éditer.

    Lorsque j'édite 2 fois en ligne, le deuxième choix est identique au premier avant que je le veuille.

    Voici le code.

    <div id="milieu">
    <?php
    //////////////////////////////////////////////////////////////////////////////
    //                        POUR ÉDITER UN LIEN EN UTILISANT UNE LISTE DÉROULANTE
    //////////////////////////////////////////////////////////////////////////////

    //**********************************************
    //                        POUR ÉDITER LES LIENS

    if (isset($_POST['edit_lien']) AND isset($_POST['edit_nom']))//SI LA VARIABLE EXISTE ON AJOUTE UNE ENTRÉE
            {
            $edit_lien= $_POST['edit_lien'];
            $edit_nom= $_POST['edit_nom'];
    //      echo "variable edit_nom #0 =" . $edit_nom . "<br />" . "variable edit_liens #0 =" . $edit_lien . "<br />" . "variable choix_lien #0 =" .$choix_lien . "<br />";

    //      if ($edit_lien != null or $edit_nom != null)
            mysql_query("UPDATE new_link SET name='$edit_nom', link='$edit_lien' WHERE id='$choix_lien'"); // Requête SQL
            $edit_lien=null . $edit_nom=null;
    //      echo "variable edit_nom #10 =" . $edit_nom . "<br />" . "variable edit_liens #10 =" . $edit_lien . "<br />" . "variable choix_lien #10 =" .$choix_lien . "<br />";
            }

    if ($_POST['choix_lien'] !="")
            {
            $choix_lien = $_POST['choix_lien'];
    //      echo "variable choix_lien #1 =" . $choix_lien . "<br />";
            }
    ?>
    <!--
    ************************************************************
                            LA LISTE DÉROULANTE
    -->

    <form method="post" action="admin.php">
    <fieldset><legend>Pour éditer un lien</legend> <!-- Titre du fieldset -->
    <p>
            <select name="choix_lien">
    <?php
            $reponse = mysql_query("SELECT * FROM new_link"); // Requête SQL
            while ($donnees = mysql_fetch_array($reponse) )
            {
            $id= $donnees['id'];
            $name= $donnees['name'];
            $link= $donnees['link'];
    //      echo "variable id #0=". $id . "<br />";
    //      echo "variable name #0=". $name . "<br />";
    //      echo "variable link #0=". $link . "<br />";
    ?>
            <option value=<?php echo '"' . $id  . '"' . DernierChoix($id);?>> <? echo $name ;?></option>
    <?php
            }

    ?>
            </select>
    <input type="submit" value="ok">

    <?php
            if ($choix-Lien == "")
            {
            $reponse = mysql_query("SELECT * FROM new_link WHERE id='$choix_lien' "); // Requête SQL
            $donnees = mysql_fetch_array($reponse);
                            $id= $donnees['id'];
                    $name= $donnees['name'];
                    $link= $donnees['link'];

    //            echo "variable id #1 =". $id . "<br />" . "variable name #1 =". $name . "<br />" . "variable link #1 =". $link . "<br />";
    //            echo "variable edit_nom #13 =" . $edit_nom . "<br />" . "variable edit_liens #13 =" . $edit_lien . "<br />" . "variable choix_lien #13 =" .$choix_lien . "<br />";
            }
    ?>

            <label>Le titre du lien :<br /><input size="30" type="text" name="edit_nom" value="<?php echo $name; ?>" /></label><br />
            <label>Le lien :<br /><input size="40" type="text" name="edit_lien" value="<?php echo $link; ?>" /></label><br />
    </p>
            <input type="submit" value="Editer le lien">
            </fieldset>
            </form>
    </div>


    Merci pour les suggestions,

    Yvan
    • Partager sur Facebook
    • Partager sur Twitter
      7 juillet 2006 à 9:32:51

      C'est peut etre du a tes $_POST. Et quand tu modifies une troisieme fois la ligne, ca fonctionne ?
      • Partager sur Facebook
      • Partager sur Twitter
        7 juillet 2006 à 17:34:55

        Pour résoudre mon problème j'ai ajouté une variable hidden.

        <div id="milieu">
        <?php
        //////////////////////////////////////////////////////////////////////////////
        //                        POUR MODIFIER UN LIEN EN UTILISANT UNE LISTE DÉROULANTE
        //////////////////////////////////////////////////////////////////////////////

        //**********************************************
        //                        POUR MODIFIER LES LIENS
        $new_choix_lien = $_POST['choix_lien'];
        $old_id = $_POST['id'];
        if (isset($_POST['edit_lien']) AND isset($_POST['edit_nom']))//SI LA VARIABLE EXISTE ON AJOUTE UNE ENTRÉE
                {       
                $edit_lien= $_POST['edit_lien'];
                $edit_nom= $_POST['edit_nom'];
                        if ($new_choix_lien != $old_id)
                        {
                        $edit_lien=null . $edit_nom=null;       
                        }

                if ($edit_lien != null or $edit_nom != null)
                mysql_query("UPDATE new_link SET name='$edit_nom', link='$edit_lien' WHERE id='$choix_lien'"); // Requête SQL
                }

        if (isset($_POST['choix_lien']))
                {
                $choix_lien = $_POST['choix_lien'];
                }
        ?>
        <!--
        ************************************************************
                                LA LISTE DÉROULANTE
        -->

        <form method="post" action="admin.php">
        <fieldset><legend>Pour modifier un lien</legend> <!-- Titre du fieldset -->
        <p>
                <select name="choix_lien">
        <?php
                $reponse = mysql_query("SELECT * FROM new_link"); // Requête SQL
                while ($donnees = mysql_fetch_array($reponse) )
                {
                $id= $donnees['id'];
                $name= $donnees['name'];
                $link= $donnees['link'];
        ?>
                <option value=<?php echo '"' . $id  . '"' . DernierChoix($id);?>> <? echo $name ;?></option><br />
        <?php
                }
        ?>
                </select>
                <input type="submit" value="ok"><br />

        <?php
                if ($choix_lien != "")
                {
                        $reponse = mysql_query("SELECT * FROM new_link WHERE id='$choix_lien' "); // Requête SQL
                        $donnees = mysql_fetch_array($reponse);
                        $id= $donnees['id'];
                        $name= $donnees['name'];
                        $link= $donnees['link'];
        ?>
                <label>Le titre du lien :<br /><input size="35" type="text" name="edit_nom" value="<?php echo $name; ?>" /></label><br />
                <label>Le lien :<br /><input size="35" type="text" name="edit_lien" value="<?php echo $link; ?>" /></label><br />
                <input type="hidden" name="id" value="<?php echo $id;?>" />
                <input type="submit" value="Editer le lien">
                <?php
                }       
                ?>
        </p>   
                </fieldset>
                </form>
        </div>


        Merci pour le conseil
        • Partager sur Facebook
        • Partager sur Twitter

        UPDATE

        × 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