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 :

MAJ Base sql express


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2024
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2024
    Messages : 22
    Par défaut MAJ Base sql express
    Bonjour

    je cherche à mettre à jour des tables via un formulaire et un code PHP
    j'arrive à entrer les nouvelles données, supprimer les lignes ( en me servant des ID) mais les MAJ font n'importe quoi...

    Mise_a_jour_ligne.php:


    Code html : 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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Mise à jour des données</title>
    </head>
    <body>
        <h1>Mise à jour des données</h1>
        <form action="mise_a_jour_ligne_traitement.php" method="POST">
            <label for="NumeroLigne">Sélectionner le numéro de la ligne à mettre à jour :</label>
            <input type="text" id="NumeroLigne" name="NumeroLigne" required><br><br>
     
            <label for="nomDepartement">Mise à jour du Service :</label>
            <input type="text" id="nomDepartement" name="nomDepartement" required><br><br>
     
            <label for="nomUtilisateur">Mise à jour du nom de l'utilisateur :</label>
            <input type="text" id="nomUtilisateur" name="nomUtilisateur" required style="width: 250px;"><br><br>
     
            <label for="nomOrdinateur">Mise à jour du nom de l'ordinateur :</label>
            <input type="text" id="nomOrdinateur" name="nomOrdinateur" required><br><br>
     
            <label for="numeroCommande">Mise à jour du numéro de commande :</label>
            <input type="text" id="numeroCommande" name="numeroCommande" required><br><br>
     
            <label for="nomLogiciel">Mise à jour du nom du logiciel :</label>
            <input type="text" id="nomLogiciel" name="nomLogiciel" required><br><br>
     
            <label for="versionLogiciel">Mise à jour de la Version du logiciel :</label>
            <input type="text" id="versionLogiciel" name="versionLogiciel" required style="width: 250px;"><br><br>
     
            <label for="numeroLicence">Mise à jour du numéro de licence :</label>
            <input type="text" id="numeroLicence" name="numeroLicence" required style="width: 350px;"><br><br>
     
            <label for="systemeExploitation">Mise à jour du système d'exploitation :</label>
            <input type="text" id="systemeExploitation" name="systemeExploitation" required><br><br>
     
            <label for="numeroTicket">Mise à jour du numéro de ticket :</label>
            <input type="text" id="numeroTicket" name="numeroTicket" required><br><br>
     
            <label for="dateVerification">Mise à jour de la date de vérification :</label>
            <input type="date" id="dateVerification" name="dateVerification" required><br><br>
     
    		<label for="Verification">vérification :</label>
            <input type="Verification" id="Verification" name="Verification" required style="width: 250px;"><br><br>
     
            <label for="commentaire">Mise à jour du Commentaire :</label>
            <textarea id="commentaire" name="commentaire" rows="4" cols="50" required></textarea><br><br>
     
            <input type="submit" value="Mettre à jour">
        </form>
    </body>
    </html>

    Et "mise_a_jour_Ligne_traitement.php"

    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
    <?php
    // Inclure le fichier de connexion à la base de données
    include 'connexion_sql.php';
     
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
     
    try {
        // Récupérer l'ID et les données à mettre à jour depuis le formulaire POST
        $numero_ligne = $_POST['NumeroLigne']; // Récupérer le numéro de ligne à mettre à jour
        $nom_departement = $_POST['nomDepartement'];
        $nom_utilisateur = $_POST['nomUtilisateur'];
        $nom_ordinateur = $_POST['nomOrdinateur'];
        $numero_commande = $_POST['numeroCommande'];
        $nom_logiciel = $_POST['nomLogiciel'];
        $version_logiciel = $_POST['versionLogiciel'];
        $numero_licence = $_POST['numeroLicence'];
        $systeme_exploitation = $_POST['systemeExploitation'];
        $numero_ticket = $_POST['numeroTicket'];
        $date_verification = $_POST['dateVerification'];
        $verification = $_POST['Verification'];
        $commentaire = $_POST['commentaire'];
     
        // Mettre à jour les enregistrements dans chaque table
        $tables_to_update = array(
            "Departements" => "NomsDepartements",
            "Utilisateurs" => "NomsDesUtilisateurs",
            "Ordinateurs" => "NomsDesOrdinateurs",
            "Commandes" => "NumDeCommandes",
            "Logiciels" => "NomsLogiciels",
            "VersionsAPPL" => "VersionsAPPL",
            "Licences" => "NumDeLicences",
            "Systems" => "OS",
            "Tickets" => "NumDeTickets",
            "DateMAJ" => "DateMAJ",
            "Verifications" => "Verifications",
            "Commentaires" => "ContenuCommentaires"
        );
     
        foreach($tables_to_update as $table => $column) {
            // Construire dynamiquement le nom de la variable à partir de $table
            $nom_variable = "nom_" . strtolower($table);
            // Construire la requête SQL avec le bon nom de variable
            $sql = "UPDATE $table SET $column = ? WHERE ID_$table = ?";
            $stmt = $conn->prepare($sql);
            $stmt->bindParam(1, ${$nom_variable});
            $stmt->bindParam(2, $numero_ligne);
            $stmt->execute();
            $stmt->closeCursor();
        }
     
        // Redirection vers la page de succès
        header("Location: Inventaire_Siege.html");
        exit();
    } catch (Exception $e) {
        echo "Erreur : " . $e->getMessage();
    }
     
    // Fermer la connexion à la base de données
    $conn = null;
    ?>
    je n'ai pas de message d'erreur sauf que ça ne me récupére pas L'ID et donc la ligne à modifier.
    Si quelqu'un à une idée, je le remercie d'avance

    CDT

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 666
    Par défaut
    avez vous des autres pages dans votre application ?

    d'habitude, on utilise une autre page qui liste les traitements avec des liens de modifications du genre modifier_traitement.php?id_traitement=658.
    ensuite dans cette page modifier_traitement.php, vous n'avez pas de champ pour saisir l'identifiant, ça sera un champ caché (input type=hidden) qui récupèrera l'identifiant dans l'url.

    je trouve aussi bizarre la boucle que vous faites sur plusieurs tables. si une colonne a le même nom dans plusieurs tables, il y a peut-être un souci de conception.
    pouvez vous nous donner plus de détails sur la structure de vos données ?

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2024
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2024
    Messages : 22
    Par défaut
    Oui par exemple pour la suppression des lignes ou l'ajout des utilisateurs:


    ajouter_utilisateur.php:
    Code html : 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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Ajouter un utilisateur</title>
    </head>
    <body>
        <h1>Ajouter un utilisateur</h1>
        <form action="ajouter_utilisateur_traitement.php" method="POST">
     
            <label for="nomDepartement">Service :</label>
            <input type="text" id="nomDepartement" name="nomDepartement" required style="width: 200px;"><br><br>
     
            <label for="nomUtilisateur">Nom de l'utilisateur :</label>
            <input type="text" id="nomUtilisateur" name="nomUtilisateur" required><br><br>
     
            <label for="nomOrdinateur">Nom de l'ordinateur :</label>
            <input type="text" id="nomOrdinateur" name="nomOrdinateur" required><br><br>
     
            <label for="numeroCommande">Numéro de commande :</label>
            <input type="text" id="numeroCommande" name="numeroCommande" required><br><br>
     
            <label for="nomLogiciel">Nom du logiciel :</label>
            <input type="text" id="nomLogiciel" name="nomLogiciel" required><br><br>
     
            <label for="versionLogiciel">Version du logiciel :</label>
            <input type="text" id="versionLogiciel" name="versionLogiciel" required style="width: 250px;"><br><br>
     
            <label for="numeroLicence">Numéro de licence :</label>
            <input type="text" id="numeroLicence" name="numeroLicence" required style="width: 350px;"><br><br>
     
            <label for="systemeExploitation">Système d'exploitation :</label>
            <input type="text" id="systemeExploitation" name="systemeExploitation" required><br><br>
     
            <label for="numeroTicket">Numéro de ticket :</label>
            <input type="text" id="numeroTicket" name="numeroTicket" required><br><br>
     
            <label for="dateVerification">Date de vérification :</label>
            <input type="date" id="dateVerification" name="dateVerification" required><br><br>
     
    		<label for="Verification">vérification :</label>
            <input type="Verification" id="Verification" name="Verification" required><br><br>
     
            <label for="commentaire">Commentaire :</label>
            <textarea id="commentaire" name="commentaire" rows="4" cols="50" required></textarea><br><br>
     
            <input type="submit" value="Ajouter">
        </form>
    </body>
    </html>

    ajouter_utilisateur_traitement.php:
    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
    <?php
    // Inclure le fichier de connexion à la base de données
    include 'connexion_sql.php';
     
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
     
    // Fonction pour vérifier si la valeur est vide ou égale à "N/A"
    function checkValue($value) {
        if ($value === "" || strtoupper($value) === "N/A") {
            return null;
        }
        return $value;
    }
     
    // Récupérer les données du formulaire en vérifiant les valeurs vides ou "N/A"
    $nomDepartement = checkValue($_POST['nomDepartement']);
    $nomUtilisateur = checkValue($_POST['nomUtilisateur']);
    $nomOrdinateur = checkValue($_POST['nomOrdinateur']);
    $numeroCommande = checkValue($_POST['numeroCommande']);
    $nomLogiciel = checkValue($_POST['nomLogiciel']);
    $versionLogiciel = checkValue($_POST['versionLogiciel']);
    $numeroLicence = checkValue($_POST['numeroLicence']);
    $systemeExploitation = checkValue($_POST['systemeExploitation']);
    $numeroTicket = checkValue($_POST['numeroTicket']);
    $dateVerification = checkValue($_POST['dateVerification']);
    $Verification = checkValue($_POST['Verification']);
    $commentaire = checkValue($_POST['commentaire']);
     
    try {
        // Exécuter les requêtes SQL pour ajouter les données dans les tables correspondantes
        $conn->exec("INSERT INTO Departements (NomsDepartements) VALUES ('$nomDepartement')");
        $conn->exec("INSERT INTO Utilisateurs (NomsDesUtilisateurs) VALUES ('$nomUtilisateur')");
        $conn->exec("INSERT INTO Commandes (NumDeCommandes) VALUES ('$numeroCommande')");
        $conn->exec("INSERT INTO Logiciels (NomsLogiciels) VALUES ('$nomLogiciel')");
        $conn->exec("INSERT INTO VersionsAPPL (VersionsAPPL) VALUES ('$versionLogiciel')");
        $conn->exec("INSERT INTO Licences (NumDeLicences) VALUES ('$numeroLicence')");
        $conn->exec("INSERT INTO Systems (OS) VALUES ('$systemeExploitation')");
        $conn->exec("INSERT INTO Ordinateurs (NomsDesOrdinateurs) VALUES ('$nomOrdinateur')");
        $conn->exec("INSERT INTO Tickets (NumDeTickets) VALUES ('$numeroTicket')");
    	$conn->exec("INSERT INTO DateMAJ (DateMAJ) VALUES ('$dateVerification')");
        $conn->exec("INSERT INTO Verifications (Verifications) VALUES ('$Verification')");
        $conn->exec("INSERT INTO Commentaires (ContenuCommentaires) VALUES ('$commentaire')");
     
        // Redirection vers la page de succès
        header("Location: Inventaire_Siege.html");
        exit();
    } catch (Exception $e) {
        echo "Erreur : " . $e->getMessage();
    }
     
    // Fermer la connexion à la base de données
    $conn = null;
    ?>
    si une colonne a le même nom dans plusieurs tables,
    Non voici la structure des tables:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    table: "Departements" colonne1 "ID_DEPARTEMENTS" Colonne2: "NomsDepartements"
    table: "Utilisateurs" colonne1 "ID_UTILISATEURS" Colonne2: "NomsDesUtilisateurs"
    table: "Ordinateurs" colonne1 "ID_ORDINATEURS" Colonne2: "NomsDesOrdinateurs"
    table: "Commandes" colonne1 "ID_COMMANDES" Colonne2: "NumDeCommandes"
    table: "Logiciels" colonne1 "ID_LOGICIELS" Colonne2: "NomsLogiciels"
    table: "VersionsAPPL" colonne1 "ID_VERSIONSAPPL" Colonne2: "VersionsAPPL"
    table: "Licences" colonne1 "ID_LICENCES" Colonne2: "NumDeLicences"
    table: "Systems" colonne1 "ID_SYSTEMS" Colonne2: "OS"
    table: "Tickets" colonne1 "ID_TICKETS" Colonne2: "NumDeTickets"
    table: "DateMAJ" colonne1 "ID_DATEMAJ" Colonne2: "DateMAJ"
    table: "Verifications" colonne1 "ID_VERIFICATIONS" Colonne2: "Verifications"
    table: "Commentaires" colonne1 "ID_COMMENTAIRES" Colonne2: "ContenuCommentaires"

Discussions similaires

  1. [2012] Accès réseau Windows7 à une base SQL express 2012
    Par nico84 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 30/10/2015, 10h20
  2. Sauvegarde base SQL express
    Par jpo dans le forum Administration
    Réponses: 2
    Dernier message: 16/05/2008, 21h01
  3. Déploiement d'une base sql express 2005
    Par franck SEFIC dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/02/2008, 18h30
  4. [VS2005][WCE] Connexion en RDA à une base SQL EXPRESS 2005
    Par dacid dans le forum Windows Mobile
    Réponses: 7
    Dernier message: 16/11/2006, 18h58

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