Résolu Update une ligne de ma BDD

Discussion dans 'Questions, aides et recherches' créé par Idontknow, 19 Juin 2016.

Tags:
  1. Idontknow

    Idontknow Membre

    Inscrit:
    16 Février 2016
    Messages:
    39
    J'aime reçus:
    3
    Points:
    1 283
    Bonsoir,

    Après avoir passer quelques bonnes heures à finir totalement mon site, je me suis dit que pouvoir changer l'état d'une commande passer par un client grâce à un formulaire accessible uniquement au admin serait une bonne chose.

    J'ai essayé plusieurs façons en vain ... j'ai penser à un UPDATE mais le problème étant que je dois définir l'id de la commande à modifier avant tout en fonction de quel état est modifier.

    Et c'est la que je bloque mes connaissances actuelles ne me permettent pas de faire cela si vous avez une solution à me proposer afin de répondre à ce problème j'en serait très reconnaissant :)

    PS : Sachant que j'affiche déjà les commandes sur le panel admin grâce à :
    Code:
    <?php
        $test = $bdd->query('SELECT id FROM commande');
        foreach($test as $test)
        {
            echo"
          
            <ul class='navigation'>
                <li class='toggleSubMenu'><span>Etat de la commande n°&nbsp;".$test['id']."</span>
                    <ul class='subMenu'>
                        <li><a>
                        <font face='Montserrat'>
                            <form method='POST' class='row' action='admin.php'>
                                <label>&nbsp;Etat :</label>
                                    <select name='statue'>
                                        <option value='En attente'>En attente</option>
                                        <option value='En cours'>En cours</option>
                                        <option value='Fini'>Finie</option>
                                        <option value='Refusée'>Refusée</option>
                                    </select>
                                    </br></br>
                                <div class='form-group-lg'>
                                    <button class='link' name='submit'>Modifier</button>
                                </div>
                                </br>
                            </form>
                        </font></a></li>
                    </ul>
                </li>
            </ul></br>";
        }
      
    ?>    
    Et bien je ne sait pas comment retrouvez par la suite la commande qui a vu son état modifier et faire comprendre sa à la BDD.

    Voici un screen de ma BDD

    X6jztfuDLiuqS9mNgUnHyGJhWwE5uCwz.png

    J'espère que vous m'avez compris malgrès que sa soit un peu confus.

    @Feniix @JUBAKAB @Sidradi

    Merci d'avance
     
    Dernière édition par un modérateur: 11 Mars 2017
  2. Idontknow

    Idontknow Membre

    Inscrit:
    16 Février 2016
    Messages:
    39
    J'aime reçus:
    3
    Points:
    1 283
    PHP:
    <?php
        
    require "config.php";
      
        if(isset(
    $_SESSION['id']))
        {
          
            if(isset(
    $_POST['submit']))
            {
              
                if(!empty(
    $_POST['statue']))
                {
                    
    $statue htmlspecialchars(trim($_POST['statue']));
                    
    $UPDATEcommande $bdd->prepare("UPDATE commande SET statue = ? WHERE id = ?");
                    
    $UPDATEcommande->execute(array($_POST['statue'], $test['id']));
                }
              
            }
          
          }
    ?>
    Non fonctionnel il ne se passe absolument rien
     
  3. Feniix

    Feniix Ancien Staff

    Inscrit:
    9 Novembre 2015
    Messages:
    201
    J'aime reçus:
    237
    Points:
    2 873
    Salut,
    Code:
    <?php
    require "config.php";
    if(isset($_SESSION['id'])){
        if(isset($_POST['submit'])){
           if(!empty($_POST['statue'])){
               $statue = htmlspecialchars(trim($_POST['statue']));
              $UPDATEcommande = $bdd->prepare("UPDATE commande SET statue = ? WHERE id = ?");
              $UPDATEcommande->execute(array($_POST['statue'], $_GET['id']);
            }
        }
    }
    ?>
    
    Il faut bien sûr récupère l'id dans l'url avant :)

    En espérant avoir pu d'aider,
    Feniix :)
     
  4. Idontknow

    Idontknow Membre

    Inscrit:
    16 Février 2016
    Messages:
    39
    J'aime reçus:
    3
    Points:
    1 283
    Je n'y avait pas pensé, merci pour cette indication cependant toujours pas fonctionnel, je fournis le code de toute la page car je pense que le code php n'est pas suffisant.

    Code:
    <?php
    require "config.php";
    if(isset($_SESSION['id'])){
        if(isset($_POST['submit'])){
           if(!empty($_POST['statue']))
          {
               $statue = htmlspecialchars(trim($_POST['statue']));
              $UPDATEcommande = $bdd->prepare("UPDATE commande SET statue = ? WHERE id = ?");
              $UPDATEcommande->execute(array($_POST['statue'], $_GET['id']));
            }
        }
    }
    ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>ItsTrapp</title>
    
    <!-- Police de la page -->
    <link href='' rel='stylesheet' type='text/css'>
    <link href='' rel='stylesheet' type='text/css'>
    
    <!-- Chargement des styles -->
    <link href="css/bootstrap.css" rel="stylesheet" type="text/css">
    <link href="css/style.css" rel="stylesheet" type="text/css">
    <link href="css/font-awesome.css" rel="stylesheet" type="text/css">
    <link href="css/responsive.css" rel="stylesheet" type="text/css">
    <link href="css/animate.css" rel="stylesheet" type="text/css">
    
    <!-- Chargement du JS -->
    
    <script type="text/javascript" src="js/jquery.1.8.3.min.js"></script>
    <script type="text/javascript" src="js/bootstrap.js"></script>
    <script type="text/javascript" src="js/jquery-scrolltofixed.js"></script>
    <script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
    <script type="text/javascript" src="js/jquery.isotope.js"></script>
    <script type="text/javascript" src="js/wow.js"></script>
    <script type="text/javascript" src="js/classie.js"></script>
    <script type="text/javascript" src="js/typed.js"></script>
    <script type="text/javascript">
    $(document).ready( function () {
        // On cache les sous-menus :
        $(".navigation ul.subMenu").hide();
        // On sélectionne tous les items de liste portant la classe "toggleSubMenu"
    
        // et on remplace l'élément span qu'ils contiennent par un lien :
        $(".navigation li.toggleSubMenu span").each( function () {
            // On stocke le contenu du span :
            var TexteSpan = $(this).text();
            $(this).replaceWith('<a href="" title="Afficher le sous-menu">' + TexteSpan + '<\/a>') ;
        } ) ;
    
        // On modifie l'évènement "click" sur les liens dans les items de liste
        // qui portent la classe "toggleSubMenu" :
        $(".navigation li.toggleSubMenu > a").click( function () {
            // Si le sous-menu était déjà ouvert, on le referme :
            if ($(this).next("ul.subMenu:visible").length != 0) {
                $(this).next("ul.subMenu").slideUp("normal");
            }
            // Si le sous-menu est caché, on ferme les autres et on l'affiche :
            else {
                $(".navigation ul.subMenu").slideUp("normal");
                $(this).next("ul.subMenu").slideDown("normal");
            }
            // On empêche le navigateur de suivre le lien :
            return false;
        });    
    
    
    } ) ;
    </script> 
    </head>
    <body>
    <section>
            <nav class="main-nav-outer" id="navbar">
                <div class="container">
                    <ul class="main-nav">
                            <li><a href="index.php">Accueil</a></li>
                            <li><a href="index.php#Portfolio">Portfolio</a></li>
                            <li><a href="index.php#Shop">Shop</a></li>
                            <li class="small-logo"><a href="#Entête"><img src="img/logo.png"></a></li>
                            <li><a href="panel.php">Panel</a></li>
                            <li><a href="commande.php">Commande</a></li>
                            <?php if(isset($_SESSION['id'])) { ?>
                            <li><a href="logout.php">Déconnexion</a></li><?php } ?>
                    </ul>
                </div>
            </nav>
    </section>   
    <section>
    </br>
    
    <h2><center>Espace d'administration</center></h2></br>
    <p><b><center><h4 style="width:250px;border:2px solid #999999;">Liste des membres</h4></center></b></p>
    <?php if(isset($erreur)) { ?><p><font color="red"><i class="fa fa-exclamation-circle"></i> <?= $erreur; ?></p></font><?php } ?>
    <center>
    <?php
        require "config.php";
    
        if(isset($_SESSION['id']) AND $_SESSION['grade'] != 'Admin'){
            header('Location: exit.php');
        } elseif(!isset($_SESSION['id'])){
            header('Location: login.php');
        }
    
    echo utf8_decode('<br/>');
       
    
        $users = $bdd->query('SELECT * FROM users');
        foreach($users as $users)
        {
            echo "<p><h3><span style='color:#6AA84F' class='fa fa-user'></span> ".$users['pseudo']." | <span style='color:#912519' class='fa fa-envelope'></span> ".$users['email']." | <span style='color:#394BA4' class='fa fa-chevron-circle-right'></span> ". $users['grade']."</h3></p>";
        }
       
    ?>
    </br><p><b><center><h4 style="width:250px;border:2px solid #999999;">Gerer les commandes</h4></center></b></p></br>
    <?php 
        $test = $bdd->query('SELECT id FROM commande');
        foreach($test as $test)
        {
            echo"
           
            <ul class='navigation'>
                <li class='toggleSubMenu'><span>Etat de la commande n°&nbsp;".$test['id']."</span>
                    <ul class='subMenu'>
                        <li><a>
                        <font face='Montserrat'>
                            <form method='POST' class='row' action='admin.php'>
                                <label>&nbsp;Etat :</label>
                                    <select name='statue'>
                                        <option value='En attente'>En attente</option>
                                        <option value='En cours'>En cours</option>
                                        <option value='Fini'>Finie</option>
                                        <option value='Refusée'>Refusée</option>
                                    </select>
                                    </br></br>
                                <div class='form-group-lg'>
                                    <button class='link' name='submit'>Modifier</button>
                                </div>
                                </br>
                            </form>
                        </font></a></li>
                    </ul>
                </li>
            </ul></br>";
        }
       
    ?>                 
    </br><p><b><center><h4 style="width:250px;border:2px solid #999999;">Liste des commandes</h4></center></b></p>
    
    <?php
        require "config.php";
    
    echo utf8_decode('<br/>');
       
       
        $commande = $bdd->query('SELECT * FROM commande');
        foreach($commande as $commande)
       
        {
        echo"<ul class='navigation'>
                <li class='toggleSubMenu'><span>Commande n°&nbsp;".$commande['id']."</span>
                    <ul class='subMenu'>
                        <font color='#fff'>
                        <li><a>
                        <i style='color:#25779A' class='fa fa-clock-o' aria-hidden='true'></i>&nbsp;Statue:&nbsp;".$commande['statue']."
                        </br><i style='color:#000' class='fa fa-file-image-o' aria-hidden='true'></i>&nbsp;Type:&nbsp;".$commande['type']."
                        </br><i style='color:#000' class='fa fa-file-image-o' aria-hidden='true'></i>&nbsp;Style:&nbsp;".$commande['style']."
                        </br><i style='color:#6AA84F' class='fa fa-user'></i>&nbsp;Pseudo:&nbsp;".$commande['pseudo']."
                        </br><i style='color:#A42D2D' class='fa fa-pencil'></i>&nbsp;Couleur Principal:&nbsp;".$commande['principal']."
                        </br><i style='color:#3F44AC' class='fa fa-pencil'></i>&nbsp;Couleur Secondaire:&nbsp;".$commande['secondaire']."&nbsp;
                        </br><i style='color:#6C4A07' class='fa fa-envelope'></i>&nbsp;Email de contact:&nbsp;".$commande['email']."
                        </br><i style='color:#971C88' class='fa fa-file-text' aria-hidden='true'></i>&nbsp;Description:</br></br>".$commande['description']."</a></li>
                        </font>
                    </ul>
                </li>
            </ul></br>";
           
        }
    ?>
    
    </center>
    </section>
    </body>
    </html>
    
    
    Merci à toi Feniix j'espère que tu pourra m'aider par la suite
     
    2 personnes aiment ça.
  5. Idontknow

    Idontknow Membre

    Inscrit:
    16 Février 2016
    Messages:
    39
    J'aime reçus:
    3
    Points:
    1 283

Partager cette page

  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice