SYNTAX ERROR
Posté : 16 août 2021, 18:29
Bonjour,
L'erreur se situe donc au niveau de l'UPDATE. Ce qui fonctionne dans un autre script identique avec id (vol.maj.php) ne marche pas ensuite avec !=id
(id étant le joueur "attaquant" et != id le joueur "attaqué")
<?php
session_start();
require_once 'config.php';
include 'vol_maj.php';
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
// on sélectionne la valeur vol du joueur attaquant
$sql = "SELECT vol FROM membres WHERE id = :id";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();
$resultat = $pdostat->fetch();
if (!empty($resultat ))
{
$vol = $resultat['vol'];
}
// on va chercher la valeur vol du joueur présent par rapport à la position
$sql = "SELECT pos_x, pos_y FROM membres WHERE id=:id";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();
$resultat = $pdostat->fetch();
if (!empty($resultat )) {
$pos_x = $resultat['pos_x'];
$pos_y = $resultat['pos_y'];
}
//on va verifier/calculer son potentiel de vol
$sql = "SELECT HAB, EXP FROM membres WHERE (pos_x=$pos_x AND pos_y=$pos_y) AND id!=:id ";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();
$resultat = $pdostat->fetch();
$HAB = $resultat['HAB'];
$EXP = $resultat['EXP'];
$pdostat = $bdd->prepare('UPDATE membres SET vol = HAB + EXP WHERE id =!:id');
$pdostat->bindValue(':id', $id, PDO::PARAM_INT);
$pdostat->execute();
Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de '=!8' à la ligne 1 in C:\wamp64\www\voler.php on line 39L'erreur se situe donc au niveau de l'UPDATE. Ce qui fonctionne dans un autre script identique avec id (vol.maj.php) ne marche pas ensuite avec !=id
(id étant le joueur "attaquant" et != id le joueur "attaqué")