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 :

ajout de données dans tableau avec modification


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2022
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Janvier 2022
    Messages : 89
    Par défaut ajout de données dans tableau avec modification
    Bonjour,
    Je récupère les données de ma base SQL via le formulaire de commande dans un tableau
    J'ai du rajouter un champ dateEnvoi pour que l'opératrice indique la date à laquelle elle prépare la commande
    Cette date dois pouvoir être enregister dans ma BDD sauf que je n'y arrive pas .
    Je récupère bien le $_POST
    Après j'ai peur que quand ca marchera, j'aurai un soucis
    Est ce que la donnée sera bien attribuée au bon id ?
    Je pense déjà que mon code n'est pas trop propre car j'ai indiquée 2 connexions à ma base de données et je pense que 1 seule fois suffit
    C'est la première fois que je fais un insert into et un SELECT dans la mm page
    Pouvez vous m'éclairer
    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
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
     
     <?php
        var_dump($_POST);
        //connexion à ma BDD perso
        $connect = mysqli_connect("", "", "", "");
        //enregistrement 'dateenvoi' dans BDD
        if (!empty($_POST)) {
            //si post n'est pas vide, on vérifie que toutes les données sont présentes (isset signifie " est ce que ca existe")
            if (isset($_POST["dateEnvoi"]) && !empty($_POST["dateEnvoi"])) {
                //la donnée est bien indiquée
                //on récupère les données en les protégeant (failles XXS)
                $envoi = strip_tags($_POST["dateEnvoi"]); // on neutralise toutes les balises html
                //on enregistre les données
                //On se connecte à la base de données
                $servname = "";
                $dbname = "";
                $user = "";
                $pass = "";
     
                try {
     
                    $dbco = new PDO("mysql:host=$servname;dbname=$dbname", $user, $pass);
                    $dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                    // $donnees = "INSERT INTO 'exemple'('dateEnvoi')VALUES (:dateEnvoi)";
     
     
                    //on prépare la requête
     
                    $query = $dbco->prepare("INSERT INTO exemple(dateEnvoi)VALUES (:envoi)");
     
                    //on injecte les valeurs
                    $query->bindValue(":envoi", $envoi);
     
                    //on exécute la Requete
                    $query->execute();
                } catch (PDOException $e) {
                    echo "Erreur : " . $e->getMessage();
                }
            }
        }
     
     
        //affichage des données
        $query = "SELECT identifiant,nom,prenom,adresse,complementAdresse,ville,codePostal,mail,fixe,portable,kit,tube,aiguille,adaptateur,cartonSmall,cartonBig,etiquetteChronopost,enveloppeBulle,commentaire,dateCommande,dateEnvoi FROM exemple";
        $res = mysqli_query($connect, $query);
        if (mysqli_num_rows($res) > 0) {
            $export = '
                <style>
    // table{
    //   border: #26b72b 1px solid  ;
    // }
    td{
        border:black 1px solid;
      padding:20px;
    }
    
    h1{
    text-decoration:underline;
    }
    </style>
                <h1>Tableau de toutes les commandes </h1>
     <table> 
     <tr> 
     
     <th>identifiant</th> 
     <th>nom</th> 
     <th>prenom</th>
     <th>adresse</th> 
     <th>complement adresse</th>
     <th>ville</th>
     <th>code postal</th>
     <th>mail</th>
     <th>fixe</th>
     <th>portable</th>
     <th>nbre de kits</th>
     <th>nbre de tubes</th>
     <th>nbre aiguilles</th>
     <th>nbre adaptateur</th>
     <th>nbre petit carton</th>
     <th>nbre grand carton</th>
     <th>nbre etiquette chronopost</th>
     <th>nbre enveloppe bulle</th>
     <th>commentaire</th>
     <th>date commande</th>
     <th>date d envoi</th>
     
     </tr>
     ';
            while ($row = mysqli_fetch_array($res)) {
                $export .= '
     <tr>
    
     <td>' . $row["identifiant"] . '</td> 
     <td>' . $row["nom"] . '</td> 
     <td>' . $row["prenom"] . '</td>
     <td>' . $row["adresse"] . '</td> 
     <td>' . $row["complementAdresse"] . '</td> 
     <td>' . $row["ville"] . '</td> 
     <td>' . $row["codePostal"] . '</td>
     <td>' . $row["mail"] . '</td>
     <td>' . $row["fixe"] . '</td>
     <td>' . $row["portable"] . '</td>
     <td>' . $row["kit"] . '</td>
     <td>' . $row["tube"] . '</td>
     <td>' . $row["aiguille"] . '</td>
     <td>' . $row["adaptateur"] . '</td>
     <td>' . $row["cartonSmall"] . '</td>
     <td>' . $row["cartonBig"] . '</td>
     <td>' . $row["etiquetteChronopost"] . '</td>
     <td>' . $row["enveloppeBulle"] . '</td>
     <td>' . $row["commentaire"] . '</td>
    
     <form method="post" action="">
     <td>' . $row["dateCommande"] . '</td>
     <td><div align="center"><input type="text" name="dateEnvoi" value="' . $row["dateEnvoi"] . '"/> </td>
     <td><button type="submit">Enregistrer</button></td>
     </form>
    
     
     
    
    
     
     
     </tr>
     ';
            }
            $export .= '</table>';
            // header('Content-Type: application/xls');
            // header('Content-Disposition: attachment; filename=commande-ifce.xls');
            echo $export;
        } ?>
    Nom : 2022-06-28_10h58_38.png
Affichages : 287
Taille : 19,4 Ko

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Citation Envoyé par gabinou7 Voir le message
    Bonjour,
    Je pense déjà que mon code n'est pas trop propre car j'ai indiquée 2 connexions à ma base de données et je pense que 1 seule fois suffit
    Bonjour
    en effet, quel est l'intérêt d'avoir 2 connexions ? De plus vous utilisez 2 librairie différentes, c'est très étrange !

    Citation Envoyé par gabinou7 Voir le message
    C'est la première fois que je fais un insert into et un SELECT dans la mm page
    ça ne change pas beaucoup le problème. La logique est :
    1. connexion à la bdd (puisque dans tous les cas, vous allez intéragir avec)
    2. si $_POST alors requête "INSERT"
    3. dans tous les cas, requête "SELECT"

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2022
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Janvier 2022
    Messages : 89
    Par défaut
    C'est a dire que j'ai repris mon code ou mon tableau avec Select fonctionnais bien car on m'a demandé d'ajouter un champ modifiable qui sois également enregistré dans ma BDD
    J'ai abandonnée l'insert into car cela me crée une ligne avec le champ modifié et ma demande c'est de modifié la ligne existante.
    Je suis donc parti sur un update sauf que je suis perdu , cela n'a pas l'air de marcher car il faut préciser le champ que l'on veux modifier sauf que j'ai l'impression que ca modifie toutes mes lignes et non juste le champ que je rentre.
    Le problème c'est que je ne peux pas mettre l'id en dur car cela ne ferra qu'augmenter avec le nombre de commandes

    Qu' 'appelles tu 2 librairies différentes?

  4. #4
    Membre émérite
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2012
    Messages : 381
    Par défaut
    Citation Envoyé par gabinou7 Voir le message
    Qu' 'appelles tu 2 librairies différentes?

    Bonjour,
    mysqli et PDO.

  5. #5
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2022
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Janvier 2022
    Messages : 89
    Par défaut
    Désolé , je débute en PHP
    On nous a montré tellement de chose que je mélange tout et que je suis loin d'avoir tout saisi.

    Je vais déjà refaire mon code qu'avec une seule bibliothèque, je vais partir que sur sur du PDO sauf que mise la connexion et le message d'erreur.
    J'ai beau regarder la différence entre les 2 , je ne saisis pas tout
    Ensuite reste à voir comment j'affiche mon tableau en PDO avec les données du formulaire et que je crée un champ supplémentaire avec date d'envoi qui sera enregistré par l'opératrice de commande

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Citation Envoyé par gabinou7 Voir le message
    C'est a dire que j'ai repris mon code ou mon tableau avec Select fonctionnais bien car on m'a demandé d'ajouter un champ modifiable qui sois également enregistré dans ma BDD
    J'ai abandonnée l'insert into car cela me crée une ligne avec le champ modifié et ma demande c'est de modifié la ligne existante.
    Je suis donc parti sur un update sauf que je suis perdu , cela n'a pas l'air de marcher car il faut préciser le champ que l'on veux modifier sauf que j'ai l'impression que ca modifie toutes mes lignes et non juste le champ que je rentre.
    Le problème c'est que je ne peux pas mettre l'id en dur car cela ne ferra qu'augmenter avec le nombre de commandes

    Qu' 'appelles tu 2 librairies différentes?
    Si vous souhaitez une des lignes de ton tableau, alors c'est bien un update qu'il faut faire
    Pour l'id, il suffit de récupérer celui de la ligne à modifier (ou l'ensemble des lignes si tu choisis un système de case à cocher par exemple) et utiliser cette id dans la requête avec la clause WHERE


    Citation Envoyé par gabinou7 Voir le message
    Je vais déjà refaire mon code qu'avec une seule bibliothèque, je vais partir que sur sur du PDO sauf que mise la connexion et le message d'erreur.
    J'ai beau regarder la différence entre les 2 , je ne saisis pas tout
    Honnêtement, il n'y a pas de grande différence entre les 2 bibliothèques, juste un peu de syntaxe mais au final vous allez faire la même chose :
    1. Se connecter à la base de données
    2. Exécuter une requête SQL
    3. Afficher le résultat

Discussions similaires

  1. Ajout de Donné dans un nouveau Tableau
    Par nicocovic dans le forum ASP.NET
    Réponses: 1
    Dernier message: 31/01/2010, 18h33
  2. [POO] ajouter des données dans un tableau contenant une structure
    Par Peanut dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/02/2009, 18h41
  3. Réponses: 3
    Dernier message: 17/04/2008, 19h58
  4. Réponses: 3
    Dernier message: 10/03/2008, 23h43
  5. [MySQL] Ajouter des données dans une table avec la cmd update
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 25/09/2007, 19h54

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