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

Fermé
guigui60 - Modifié par jordane45 le 15/05/2015 à 18:27
jordane45 Messages postés 38169 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 mai 2024 - 15 mai 2015 à 18:39
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 :)

A voir également:

2 réponses

NHenry Messages postés 15116 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 9 mai 2024 331
15 mai 2015 à 18:38
Mets l'ID en champ caché dans le formulaire.
0
jordane45 Messages postés 38169 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 mai 2024 4 663
Modifié par jordane45 le 15/05/2015 à 18:39
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