[RESOLU] problème construction update

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] problème construction update

Re: problème construction update

par nestor94 » 09 sept. 2021, 10:18

$pdostat = $bdd->prepare("SELECT * FROM membres WHERE id = :id");
$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'];
$id_captif = $resultat['id_captif'];
}
	
$pdostat = $bdd->prepare("UPDATE membres SET pos_x = :pos_x , pos_y = :pos_y WHERE id =:id_captif");

$pdostat->bindvalue(':id_captif', $resultat['id_captif'], PDO::PARAM_INT);
$pdostat->bindvalue(':pos_x', $resultat['pos_x'], PDO::PARAM_INT);
$pdostat->bindvalue(':pos_y', $resultat['pos_y'], PDO::PARAM_INT);
$pdostat->execute();


header('Location:map_maj.php');
exit;
?>

Re: problème construction update

par or 1 » 08 sept. 2021, 23:54

sans exécuter la requête, il ne faut pas s'attendre à ce qu'il y ai des changements.

Re: problème construction update

par nestor94 » 08 sept. 2021, 23:39

pour le guillemet, sans doute un loupé avec le copier/coller.
je n'ai aucun message d'erreurs. le perso se déplace bien une case au nord et la table se met à jour. Mais pas pour son "captif" (qui l'accompagne lors de chaque déplacement)...
les var_dump des 3 variables donnent bien ce qui est existant
C:\wamp64\www\move_N_apied.php:43:string '468' (length=3) pour $pos_x

C:\wamp64\www\move_N_apied.php:44:string '67' (length=2) pour $pos_y

C:\wamp64\www\move_N_apied.php:45:string '18' (length=2) pour l'id du joueur captif

Re: problème construction update

par ynx » 08 sept. 2021, 20:18

Bonjour,

Il y a une erreur de syntaxe dans le code : il manque un guillemet pour fermer la chaîne de caractère qui contient la deuxième requête.
$pdostat = $bdd->prepare('SELECT * FROM membres WHERE id = :id');
Si ce n'est pas déjà le cas, tu devrais activer l'affichage des erreurs PHP en développement pour avoir un message indiquant l'erreur et le numéro de la ligne où elle s'est produite.

problème construction update

par nestor94 » 08 sept. 2021, 18:36

Bonjour,
je n'arrive pas à mettre à jour sur le dernier update :cry:


<?php
$sql = "UPDATE membres SET pos_x = pos_x, pos_y= pos_y+1, dep_vehicule= dep_vehicule-1, pos_x_vehicule= pos_x, pos_y_vehicule= pos_y WHERE id=:id";
$pdostat = $bdd->prepare($sql);
$pdostat->bindvalue(':id',$id ,PDO::PARAM_INT);
$pdostat->execute();

$pdostat = $bdd->prepare('SELECT * FROM membres WHERE id = :id);
$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'];
$id_captif = $resultat['id_captif'];

}

$pdostat = $bdd->prepare("UPDATE membres SET pos_x = :pos_x AND pos_y = :pos_y WHERE id = :id_captif");
$pdostat->bindvalue(':id_captif', $resultat['id_captif'], PDO::PARAM_INT);
$pdostat->bindvalue(':pos_x', $resultat['pos_x'], PDO::PARAM_INT);
$pdostat->bindvalue(':pos_y', $resultat['pos_y'], PDO::PARAM_INT);
header('Location:map_maj.php');
exit;
?>