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 :

Ajouter des liens pour supprimer et modifier un enregistrement avec des requêtes SQL en php


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 de base de données
    Inscrit en
    Octobre 2021
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2021
    Messages : 40
    Par défaut Ajouter des liens pour supprimer et modifier un enregistrement avec des requêtes SQL en php
    Bonjour, on me demande d'ajouter des liens pour supprimer et modifier un enregistrement avec des requêtes SQL en php :
    Nom : lien sql.png
Affichages : 498
Taille : 56,4 Ko

    J'ai le code suivant avec 1.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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <!DOCTYPE html>
    <html lang="fr">
    <head>
      <meta charset="utf-8" />
      <link rel="stylesheet" href="style.css" />
    </head>
     
     
     <?php
     require_once("2.php");
     require_once("3.php");
     
     $listeSalaries = getAllSalaries($conn) ;
     
     
     
     
    ?>
    <table border=2>
     <th>id</th>
     <th>nom</th>
     <th>prenom</th>
     <th>date-naissance</th>
     <th>date-embauche</th>
     <th>salaire</th>
     <th>service</th>
     
    <?php 
    foreach ($listeSalaries as $leSalarie): ?>
     <tr>
     <td><?php echo $leSalarie['idsalaries']; ?></td>
     <td><?php echo $leSalarie['nom']; ?></td>
     <td><?php echo $leSalarie['prenom']; ?></td>
     <td><?php echo $leSalarie['date_naissance']; ?></td>
     <td><?php echo $leSalarie['date_embauche']; ?></td>
     <td><?php echo $leSalarie['salaire']; ?></td>
     <td><?php echo $leSalarie['service']; ?></td>
     </tr>
    <?php endforeach; ?>
     
     
    </table>
     
    <?php
     
     
    $nbSalaries = getNbSalaries($conn);
    $salaireMoy = salaireMoyen($conn);
    $salaireMin = salaireMin($conn);
    $salaireMax = salaireMax($conn);
    $salariesService = salariesParService($conn);
    print_r($salariesService);
     
    echo"\n <br> <br>"; 
     
    print("nombre de salariés par service : ");
     
     
    echo"\n <br>"; 
     
       foreach ($salariesService as $cle => $valeurs) {
     
        //la deuxième boucle pour parcourir toutes les valeurs associées à une clé
        foreach ($salariesService[$cle] as $nom){
       print($nom."\n <br>");
        }
     
      }
     
       ?>
       <a href="4.php">Ajouter salariés </a>
    Voici la constitution de 4.php qui est un exemple de connexion à la bdd :
    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
    <?php
     
    try
     
    {
     
           $bdd = new PDO('mysql:host=localhost;dbname=salaries', 'root', '');
     
    }
     
    catch(Exception $e)
     
    {
     
            die('Erreur : '.$e->getMessage());
     
    }
     
     
     
    // On ajoute une entrée dans la table jeux_video
     
    $bdd->exec('INSERT INTO jeux_video(nom, possesseur, console, prix, nbre_joueurs_max, commentaires) VALUES(\'Battlefield 1942\', \'Patrick\', \'PC\', 45, 50, \'2nde guerre mondiale\')');
     
     
     
    echo 'Le jeu a bien été ajouté !';
     
    ?>

    Comment peut-on lier un lien <a href="x"> lien </a> avec des requêtes SQL permettant de modifier et de supprimer une ligne dans un tableau en sql ?

    Pour modifier je connais la requête suivante : UPDATE table
    SET nom_colonne_1 = 'nouvelle valeur'
    WHERE condition


    Pour supprimer je connais la requête suivante : DELETE FROM `table`
    WHERE condition



    Merci beaucoup si quelqu'un peut m'expliquer ce processus de lien en SQL, bonne journée à vous.

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 323
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 323
    Billets dans le blog
    17
    Par défaut
    C'est une très mauvaise idée de nommer tes scripts 1.php, 2.php => Donne-leur un nom en toutes lettres
    Plutôt que "<?php echo" tu peux faire "<?="
    Le ";" final d'un script PHP n'est pas obligatoire
    idsalaries est la colonne ID ? Pourquoi un pluriel ?

    Un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php foreach ($listeSalaries as $leSalarie): ?>
     <tr>
      <td><?php echo $leSalarie['idsalaries']; ?></td>
      <td><?php echo $leSalarie['nom']; ?></td>
      <td><?php echo $leSalarie['prenom']; ?></td>
      <td><?php echo $leSalarie['date_naissance']; ?></td>
      <td><?php echo $leSalarie['date_embauche']; ?></td>
      <td><?php echo $leSalarie['salaire']; ?></td>
      <td><?php echo $leSalarie['service']; ?></td>
      <td><a href="editEmployee.php?id=<?= $leSalarie['idsalaries'] ?>">Edit</a></td>
      <td><a href="removeEmployee.php?id=<?= $leSalarie['idsalaries'] ?>">Delete</a></td>
     </tr>
    <?php endforeach; ?>
    editEmployee.php et removeEmployee.php recevront en paramètre l'ID de l'employé à traiter
    Dans les scripts tu pourras récupérer l'ID en paramètre avec $_GET['id'] et utiliser la valeur dans le WHERE du UPDATE ou du DELETE
    Pour la suppression il faudra sans doute ajouter une étape de confirmation

  3. #3
    Membre chevronné Avatar de ddaweb
    Homme Profil pro
    Webmaster amateur
    Inscrit en
    Janvier 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster amateur
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Janvier 2013
    Messages : 341
    Par défaut
    Citation Envoyé par Séb. Voir le message
    C'est une très mauvaise idée de nommer tes scripts 1.php, 2.php => Donne-leur un nom en toutes lettres
    Il est probable qu'il a noté quelque par 1= acvefdgj, 2= raraojqjfkqj, etc ...
    Autant donner un nom explicite pour une bonne compréhension lors de la lecture du code !

  4. #4
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2021
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2021
    Messages : 40
    Par défaut
    Bonjour veuillez m'excusez de répondre que maintenant, en effet j'ai mis des chiffres à la place des noms réels.

    J'ai essayé de faire le traitement suivant pour le formulaire de modification:
    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
    <?php
     // on r�cup�re les donn�es du formulaire
    $idsalaries = $_POST['idsalaries'];
     $nom = $_POST['nom'];
     $prenom = $_POST['prenom'];
     $date_naissance = $_POST['date_naissance'];
     $date_embauche = $_POST['date_embauche']; 
     $salaire = $_POST['salaire'];
     $service = $_POST['service'];
     
     //on se connecte � la base Adherent
     $servername ="localhost";
     $dbname ="salaries";
     // Create connection
     $user = "root";
     $password = "";
     $conn =new mysqli($servername, $user, $password, $dbname);
     // Check connection
     if($conn->connect_error){
     die("Connection failed: ". $conn->connect_error);
     }
     // on r�dige la requ�te SQL
     $sql ="UPDATE SALARIES SET nom, prenom, date_naissance, date_embauche, salaire, service WHERE idsalaries=:idsalaries";
    // on ex�cute la requ�te
    if($conn->query($sql) === TRUE) {
     echo "utilisateur modifié";
    }
    else{
     echo "Erreur: ". $sql ."<br>". $conn->error;
    }
    $conn->close();
     require_once("Recuperation_affichages_des_messagesPDO.php");
     
    ?>

    Cela m'affiche l'erreur suivante:

    Erreur: UPDATE SALARIES SET nom, prenom, date_naissance, date_embauche, salaire, service WHERE idsalaries=:idsalaries
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' prenom, date_naissance, date_embauche, salaire, service WHERE idsalaries=:idsal' at line 1

    Je vous mets par la même occasion la page de mon formulaire de modification:

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <!DOCTYPE html>
     
    <html> 
     
     <head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" href="formulaire.css">
    <a href="listeSalariesPDO.php"> return </a> 
    </head>
     
    <body>
     
    <h1 class="titre"> Modifiez une ligne via le formulaire suivant: </h1> 
     
     
        <div class="form">
     
        <form name="myForm" action="insertmodifierPDO.php" method="post" onsubmit="return f_myForm()">
     
            <label for="nom">id :</label>
           <input type="number" id="idsalaries" name="idsalaries"
           min="1" max="200">
            <br/>
            <label for="nom">nom :</label>
            <input type="text" name="nom" id="nom" maxlength="30" />
            <br/>
            <label for="prenom"> prenom :</label>
            <input type="text" name="prenom" id="prenom" maxlength="30" />
    <div>
    <label for="date-de-naissance">date-naissance</label>
    <input type="date" id="date_naissance" name="date_naissance" maxlength="30"/>
     </div>
     <label for="date_embauche">date-emboche:</label>
    <input type="date" id="date_embauche" name="date_embauche"
       value="2019-07-22"
       min="1900-01-01" max="2023-12-31">
     
            <br/>
            <label for="cp">salaire :</label>
            <input type="number" name="salaire" id="salaire" maxlength="5" />
            <br/>
        <label for="status">service :</label>
              <select size="1" name="service" id="service" maxlength="30">
                <optgroup label="service">
                    <option value="0">...</option>
                    <option value="comptable">comptable</option>
                    <option value="informatique">informatique</option>
                    <option value="commercial">commercial</option>
     
                </optgroup>
            </select>
     
            <div id="esp_submit_reset">
            <input type="submit" name="send_connexion" value="envoyer mon formulaire" />
            </div>
        </form>
     </div>
     
     
        </body>
     
     
     
    </html>

    Merci beaucoup si vous m'aider de nouveau sur cette requête SQL que j'ai dû mal à cerner, bonne journée à vous

Discussions similaires

  1. [Joomla!] ajouter un lien pour voir tous les items
    Par htr999 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 24/05/2008, 18h22
  2. Lien pour supprimer un fichier
    Par davelop dans le forum ASP.NET
    Réponses: 4
    Dernier message: 20/03/2008, 14h40
  3. Réponses: 9
    Dernier message: 05/12/2007, 13h14
  4. [SQL] Concaténer des requêtes SQL en PHP
    Par brotelle dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/04/2006, 19h53

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