Tentative d'UPDATE avec un array mais ne fonctionne pas.
Résolu
MOBIL75
-
MOBIL75 -
MOBIL75 -
Bonjour, tout est dans le titre, je veux modifier une annonce dans ma base de données via un UPDATE, seulement la quantité d'éléments m'oblige à utiliser un array.
Y a-t-il une erreur dans mon code ? Je n'en ai pas l'impression.
$edit->prepare('UPDATE 'Annonce' SET(:id, :id_vendeur, :type_transaction, :type_bien, :departement, :ville, :adresse, :code_postal, :nbr_piece, :nbr_chambre, :nbr_toilettes, :nbr_sdb, :type_cuisine, :etage, :ascenseur, :balcon, :surface_balcon, :terrasse, :surface_terrasse, :piscine, :option, :etat_bien, :surface_carrez, :surface_autre, :dpe, :ges, :prix, :prix_vendeur, :commission_agence, :ref_annonce, :description, :exclu ) WHERE ref_annonce = ?');
$edit->execute(array('id_vendeur' => $_SESSION['id'],
'type_transaction' => $_POST['type_transaction'],
'type_bien' => $_POST['type_bien'],
'departement' => $_POST['departement'],
'ville' => $_POST['ville'],
'adresse' => $_POST['adresse'],
'code_postal' => $_POST['code_postal'],
'nbr_piece' => $_POST['nbr_piece'],
'nbr_chambre' => $_POST['nbr_chambre'],
'nbr_toilettes' => $_POST['nbr_toilettes'],
'nbr_sdb' => $_POST['nbr_sdb'],
'type_cuisine' => $_POST['type_cuisine'],
'etage' => $_POST['etage'],
'ascenseur' => $_POST['ascenseur'],
'balcon' => $_POST['balcon'],
'surface_balcon' => $_POST['surface_balcon'],
'terrasse' => $_POST['terrasse'],
'surface_terrasse' => $_POST['surface_terrasse'],
'piscine' => $_POST['piscine'],
'option' => $_POST['option'],
'etat_bien' => $_POST['etat_bien'],
'surface_carrez' => $_POST['surface_carrez'],
'surface_autre' => $_POST['surface_autre'],
'dpe' => $_POST['dpe'],
'ges' => $_POST['ges'],
'prix' => $_POST['prix'],
'prix_vendeur' => $_POST['prix_vendeur'],
'commission_agence' => $_POST['commission_agence'],
'ref_annonce' => $_POST['ref_annonce'],
'description' => $_POST['description'],
'exclu' => $_POST['exclu'],
'ref_annonce' => $_GET['ref']));
return true;
if (strlen($_POST['code_postal']) != '5'){ echo '<script>alert("Ce code postal n\'est pas valide !");</script>'; }
else if($_GET['ref'] != $_POST['ref_annonce']){ rename($_GET['ref'], $_POST['ref_annonce']); }
else
{
echo $edit->fetch() == true ? '<script>alert("Annonce Modifiée !");</script>' : '<script>alert("Une erreur est survenue !");</script>';
echo'<meta http-equiv="refresh" content="0; URL=gerer_annonces">';
}
Y a-t-il une erreur dans mon code ? Je n'en ai pas l'impression.
A voir également:
- Tentative d'UPDATE avec un array mais ne fonctionne pas.
- Windows update ne fonctionne pas - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Nettoyage windows update - Guide
- Wsus offline update - Télécharger - Systèmes d'exploitation
2 réponses
Salut, essaye comme ça :
$edit->prepare('UPDATE Annonce SET(:id, :id_vendeur, :type_transaction, :type_bien, :departement, :ville, :adresse, :code_postal, :nbr_piece, :nbr_chambre, :nbr_toilettes, :nbr_sdb, :type_cuisine, :etage, :ascenseur, :balcon, :surface_balcon, :terrasse, :surface_terrasse, :piscine, :option, :etat_bien, :surface_carrez, :surface_autre, :dpe, :ges, :prix, :prix_vendeur, :commission_agence, :ref_annonce, :description, :exclu ) WHERE ref_annonce = ?');
$edit->execute(array('id_vendeur' => $_SESSION['id'],
'type_transaction' => $_POST['type_transaction'],
'type_bien' => $_POST['type_bien'],
'departement' => $_POST['departement'],
'ville' => $_POST['ville'],
'adresse' => $_POST['adresse'],
'code_postal' => $_POST['code_postal'],
'nbr_piece' => $_POST['nbr_piece'],
'nbr_chambre' => $_POST['nbr_chambre'],
'nbr_toilettes' => $_POST['nbr_toilettes'],
'nbr_sdb' => $_POST['nbr_sdb'],
'type_cuisine' => $_POST['type_cuisine'],
'etage' => $_POST['etage'],
'ascenseur' => $_POST['ascenseur'],
'balcon' => $_POST['balcon'],
'surface_balcon' => $_POST['surface_balcon'],
'terrasse' => $_POST['terrasse'],
'surface_terrasse' => $_POST['surface_terrasse'],
'piscine' => $_POST['piscine'],
'option' => $_POST['option'],
'etat_bien' => $_POST['etat_bien'],
'surface_carrez' => $_POST['surface_carrez'],
'surface_autre' => $_POST['surface_autre'],
'dpe' => $_POST['dpe'],
'ges' => $_POST['ges'],
'prix' => $_POST['prix'],
'prix_vendeur' => $_POST['prix_vendeur'],
'commission_agence' => $_POST['commission_agence'],
'ref_annonce' => $_POST['ref_annonce'],
'description' => $_POST['description'],
'exclu' => $_POST['exclu'],
'ref_annonce' => $_GET['ref']));
return true;
if (strlen($_POST['code_postal']) != '5'){ echo '<script>alert("Ce code postal n\'est pas valide !");</script>'; }
else if($_GET['ref'] != $_POST['ref_annonce']){ rename($_GET['ref'], $_POST['ref_annonce']); }
else
{
echo $edit->fetch() == true ? '<script>alert("Annonce Modifiée !");</script>' : '<script>alert("Une erreur est survenue !");</script>';
echo'<meta http-equiv="refresh" content="0; URL=gerer_annonces">';
}
J'ai essayé ça. Mais ça ne fonctionne pas.
require '../Class/bdd.params.php';
try
{
$bdd = new PDO('mysql:host='.__SQL_HOST.';dbname='.__SQL_BDD, __SQL_LOGIN, __SQL_PASSWORD);
} catch(Exception $e) {
exit('Erreur lors de la connexion à la BDD: '.$e->getMessage());
}
$editer = $bdd->prepare('SELECT * FROM Annonce WHERE ref_annonce = ?');
$editer->execute(array($_GET['ref']));
while ($donnees = $editer->fetch()){
$donnees->execute(array('id_vendeur' => $_SESSION['id'],
'type_transaction' => $_POST['type_transaction'],
'type_bien' => $_POST['type_bien'],
'departement' => $_POST['departement'],
'ville' => $_POST['ville'],
'exclu' => $_POST['exclu']));
$bdd->query('UPDATE Annonce SET '.$donnees.' WHERE ref_annonce = '.$editer);
if (strlen($_POST['code_postal']) != '5'){ echo '<script>alert("Ce code postal n\'est pas valide !");</script>'; }
//else if($_GET['ref'] != $_POST['ref_annonce']){ rename($_GET['ref'], $_POST['ref_annonce']); }
else
{
echo $edit->fetch() == true ? '<script>alert("Annonce Modifiée !");</script>' : '<script>alert("Une erreur est survenue !");</script>';
echo'<meta http-equiv="refresh" content="0; URL=gerer_annonces">';
}
}