J'ai un soucis de syntaxe (et aussi de compréhension) pour cet update que je veux réaliser.
$sql = "SELECT contenant FROM membres WHERE id = :id";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();
$resultat = $pdostat->fetch();
if (!empty($resultat )) {
$contenant = $resultat['contenant'];
$sql = "UPDATE map.contenant INNER JOIN membres ON membres.contenant SET membres.contenant =: map.contenant WHERE membres.pos_x = map.pos_x AND membres.pos_y = map.pos_y";
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
}
?>
Syntax error or access violation: 1064 Erreur de syntaxe près de ': map.contenant WHERE membres.pos_x = map.pos_x AND membres.pos_y = map.pos_y' à la ligne 1 in C:\wamp64
En fait, je veux remplacer le champ "contenant" dans map par le champ "contenant" de membres en fonction de pos_x et pos_y (membres)
Le message d'erreur apparait car tu as mis deux points
: map.contenant
Les deux points servent aux variables nommées .. ce qui n'est pas le cas ici !
Ensuite.. ben.. la syntaxe de ta requête sql est fausse....
Vu ce que tu décris, le WHERE est inutile .. par contre tu pourrais placer ces conditions dans la clause ON ( qui actuellement est fausse )