Mise à jour des données d'une bdd via PHP

guigui60 -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

je suis en train de créer un petit site d'annonces de voitures.

La personne qui gérera ses annonces devra pouvoir les créer, les modifier et les supprimer.

J'ai déjà réussi à créer une page avec un formulaire qui stocke dans la base de données les informations saisies.

$req = $bdd->prepare('INSERT INTO voiture2(marque, modele, annee, kilometrage, carburant, boite, prix, description, import_image)
   VALUES(:marque, :modele, :annee, :kilometrage, :carburant, :boite, :prix, :description, :import_image)');
        
   $req -> execute(array(
   'marque' => $_POST['marque'],
   'modele' => $_POST['modele'],
   'annee' => $_POST['annee'],
   'kilometrage' => $_POST['kilometrage'],
   'carburant' => $_POST['carburant'],
   'boite' => $_POST['boite'],
   'prix' => $_POST['prix'],
   'description' => $_POST['description'],
   'import_image' => $fichier));


Maintenant mon objectif suivant est de pouvoir mettre à jour ces annonces.
L'idée est de créer un tableau qui affiche toutes les annonces, avec sur la droite un bouton "modifier" et un autre bouton "supprimer".

<p>
 <td><a href="#"><img src="uploads/<?php echo $donnees['import_image']; ?>" style="width:160px; height:120px;" ></a></td> 
 <td><?php echo $donnees['marque']; ?></td>
 <td><?php echo $donnees['modele']; ?></td>
 <td><?php echo $donnees['carburant']; ?></td>
 <td><?php echo $donnees['boite']; ?></td>
 <td><?php echo $donnees['kilometrage']; ?></td>
 <td><?php echo $donnees['description']; ?></td>
 <td><?php echo $donnees['prix']; ?> euros<br /></td>
 <td><input name="modifier" type="submit" id="modifier" value="Modifier" /></td>
 <td><input name="supprimer" type="submit" id="supprimer" value="supprimer" /></td>
   </p>


Les annonces ont un ID qui est auto incrémenté dans la base, je pensais m'en servir pour afficher le contenu des infos de la voiture concernée, pour pouvoir ensuite les modifier via un formulaire (via un 'UPDATE'), mais je ne vois pas comment faire le lien entre le bouton "Modifier" de mon tableau et le champs de la base pour la voiture concernée.

J'espère que c'est clair, je peux rajouter + d'infos si besoin.

Merci d'avance de votre aide :)

2 réponses

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Mets l'ID en champ caché dans le formulaire.
    0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,
    Plutôt que de passer par un bouton submit .. je passerai par un lien qui contiendrait l'ID de l'annonce à modifier (et/ou à supprimer par exemple).

    <p>
     <td><a href="#"><img src="uploads/<?php echo $donnees['import_image']; ?>" style="width:160px; height:120px;" ></a></td> 
     <td><?php echo $donnees['marque']; ?></td>
     <td><?php echo $donnees['modele']; ?></td>
     <td><?php echo $donnees['carburant']; ?></td>
     <td><?php echo $donnees['boite']; ?></td>
     <td><?php echo $donnees['kilometrage']; ?></td>
     <td><?php echo $donnees['description']; ?></td>
     <td><?php echo $donnees['prix']; ?> euros<br /></td>
     <td><a href="gestion_annonce.php?action=modifier&id=<?php echo $donnees['id'];>">Modifier</a></td>
     <td><a href="gestion_annonce.php?action=supprimer&id=<?php echo $donnees['id'];>">Supprimer</a></td>
       </p>
    


    Ensuite, dans une page : gestion_annonce.php
    tu pourrais faire un truc du genre :
    <?php
    $action = isset($_GET['action'])?$_GET['action']:NULL;
    $id = isset($_GET['id'])?$_GET['id']:NULL;
    
    switch($action){
    
     case "modifier":
      //ici le code pour afficher le formulaire de modification par exemple 
      if($id){
        $sql = "SELECT * FROM voiture2 WHERE id=:id";
        $req = $bdd->prepare($sql);
        $req -> execute(array(":id"=>$id));
        $result = $req->fetchAll();
         
        // ...etc....
       
      }else{
        echo "<br>Erreur ! ID est vide...";
      }
       break;
     case "supprimer":
      //ici le code pour supprimer l'annonce dont l'id = $id
      if($id){
        $sql = "DELETE FROM voiture2 WHERE id=:id";
        $req = $bdd->prepare($sql);
        $req -> execute(array(":id"=>$id));
      }else{
       echo "<br>Erreur ! ID est vide...";
      }
       break;
     default:
      //Si action ne correspond pas aux autres choix...
      echo "<br>Erreur ! ACTION INCONNUE : $action";
        break;
    }//fin du SWITCH ACTION
    
    
    
    


    Cordialement,
    Jordane
    0