Tentative d'UPDATE avec un array mais ne fonctionne pas.

Résolu/Fermé
MOBIL75 - Modifié par MOBIL75 le 23/04/2013 à 18:10
 MOBIL75 - 25 avril 2013 à 18:13
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.


$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:

2 réponses

ludo1325 Messages postés 149 Date d'inscription samedi 27 juin 2009 Statut Membre Dernière intervention 23 juin 2015 33
23 avril 2013 à 20:43
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">';  
}  
0
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">';   
 } 
} 

0