[RESOLU] SYNTAX ERROR

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] SYNTAX ERROR

Re: SYNTAX ERROR

par nestor94 » 16 août 2021, 21:51

J'en sais rien mais je viens de m'apercevoir de cela:
le SELECT avec AND id!=:id ";

le UPDATE avec WHERE id =!:id');

:oops:

Re: SYNTAX ERROR

par or 1 » 16 août 2021, 19:00

pourquoi cela ne met pas d'erreur sur
SELECT HAB, EXP FROM membres WHERE (pos_x=$pos_x AND pos_y=$pos_y) AND id != :id
?
mais en met une sur
UPDATE membres SET vol = HAB + EXP WHERE id =! :id
?

SYNTAX ERROR

par nestor94 » 16 août 2021, 18:29

Bonjour,
<?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 39

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é") :o