Modifier une table MySQL avec un formulaire
Résoluchico200987 Messages postés 856 Statut Membre -
Je voudrais modifier une table MySQL avec un formulaire.
En fait, j'ai un système d'annonce pour un site de moto où l'utilisateur met des motos à vendre.
Mon problème :
Je n'arrive pas à me servir de la fonction UPDATE (que j'ai trouvé après un peu de recherche).
Merci d'avance pour toutes vos réponses et votre patience.
- Modifier une table MySQL avec un formulaire
- Whatsapp formulaire opposition - Guide
- Table ascii - Guide
- Modifier dns - Guide
- Comment modifier un tableau sur word - Guide
- Modifier liste déroulante excel - Guide
3 réponses
Mettre à jour une ligne MySQL à partir d'un formulaire PHP via l'instruction UPDATE et en utilisant l'identifiant de l'annonce est le problème central abordé. Des solutions essentielles préconisent d'utiliser une requête préparée avec PDO et de lier tous les paramètres, y compris l'id, plutôt que de concaténer des valeurs dans la requête. La réponse recommandée montre notamment d'écrire UPDATE article SET modele=:modele, cylindree=:cylindree, km=:km, annee=:annee, prix=:prix, description=:description WHERE id = :id et d'exécuter avec un tableau associatif incluant 'id'. En cas d'erreur, il faut aussi vérifier la correspondance des noms de colonnes et des variables POST et éviter d'inclure directement l'id dans la requête SQL.
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=annonces' , 'root' , '' , $pdo_options);
$id = $_GET['id'];
$req = $bdd->prepare('UPDATE article SET modele=:modele, cylindree=:cylindree, km=:km, annee=:annee, prix=:prix, description=:description WHERE id = ' .$id .' ');
$req->execute(array(
'modele' => $_POST['modele'],
'cylindree' => $_POST['cyl'],
'km' => $_POST['km'],
'annee' => $_POST['annee'],
'prix' => $_POST['prix'],
'description' => $_POST['description'],
));
echo "L'annonce a bien été modifiée";
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
Tu code en php ?
La syntaxe pour modifier une table est la suivante :
UPDATE "nom de ta table" SET "nom de ta colonne" = [valeur]
WHERE {condition}
Pour inclure ceci en php tu dois utiliser la fonction $variable=mysql_query("ta requete sql")
Pour plus de précision demande.
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=annonces' , 'root' , '' , $pdo_options);
$id = $_GET['id'];
$req = $bdd->prepare('UPDATE article SET modele=:modele, cylindree=:cylindree, km=:km, annee=:annee, prix=:prix, description=:description WHERE id = ' .$id .' ');
$req->execute(array(
'modele' => $_POST['modele'],
'cylindree' => $_POST['cyl'],
'km' => $_POST['km'],
'annee' => $_POST['annee'],
'prix' => $_POST['prix'],
'description' => $_POST['description'],
));
echo "L'annonce a bien été modifiée";
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>