Update sur deux tables
Résolu
nestor94
Messages postés
74
Statut
Membre
-
nestor94 Messages postés 74 Statut Membre -
nestor94 Messages postés 74 Statut Membre -
Bonjour,
le script suivant fonctionne et je voudrais que les deux valeurs (pos_x et pos_y)soient aussi mises à jour dans une autre table (map) ! J'ai un peu vu ici et là qu'avec un INNER JOIN ca semble fonctionner mais je suis un peu perdu au niveau du "lien" à mettre dans la seconde table ainsi que la requete finale.
je pensais mettre cela en requete ?
par contre le "membre.id" et "map.id" ??????????
le script suivant fonctionne et je voudrais que les deux valeurs (pos_x et pos_y)soient aussi mises à jour dans une autre table (map) ! J'ai un peu vu ici et là qu'avec un INNER JOIN ca semble fonctionner mais je suis un peu perdu au niveau du "lien" à mettre dans la seconde table ainsi que la requete finale.
<?php
session_start();
require_once 'config.php';
$pos_x_min = 0;
$pos_x_max = 500;
$pos_y_min = 0;
$pos_y_max = 500;
$pos_x = mt_rand($pos_x_min,$pos_x_max);
$pos_y = mt_rand($pos_y_min,$pos_y_max);
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$pdostat = $bdd->prepare('UPDATE membres SET pos_x= :pos_x, pos_y= :pos_y WHERE id= :id');
$pdostat->bindvalue(':pos_x',$pos_x, PDO::PARAM_INT);
$pdostat->bindvalue(':pos_y',$pos_y, PDO::PARAM_INT);
$pdostat->bindValue(':id', $id, PDO::PARAM_INT);
$pdostat->execute();
$_SESSION['pos_x'] = $pos_x;
$_SESSION['pos_y'] = $pos_y;
header('Location: page_membre.php');
exit;
?>
je pensais mettre cela en requete ?
$pdostat = $bdd->prepare('UPDATE membres SET membres.pos_x= :map.pos_x, membres.pos_y= :map.pos_y FROM membres INNER JOIN map ON membres.id = map.id WHERE id= :id');
par contre le "membre.id" et "map.id" ??????????
A voir également:
- Update sur deux tables
- Comment faire deux colonnes sur word - Guide
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Deux ecran pc - Guide
3 réponses
J'ai mal formulé mon besoin, en fait c'est un insert que je dois réaliser dans une seconde table.
pas de message erreur et la table map est non renseignée.
<?php
session_start();
require_once 'config.php';
$pos_x_min = 0;
$pos_x_max = 500;
$pos_y_min = 0;
$pos_y_max = 500;
$pos_x = mt_rand($pos_x_min,$pos_x_max);
$pos_y = mt_rand($pos_y_min,$pos_y_max);
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$pdostat = $bdd->prepare('UPDATE membres SET pos_x= :pos_x, pos_y= :pos_y WHERE id= :id');
$pdostat->bindvalue(':pos_x',$pos_x, PDO::PARAM_INT);
$pdostat->bindvalue(':pos_y',$pos_y, PDO::PARAM_INT);
$pdostat->bindValue(':id', $id, PDO::PARAM_INT);
$pdostat->execute();
$_SESSION['pos_x'] = $pos_x;
$_SESSION['pos_y'] = $pos_y;
$sql = "INSERT INTO map (pos_x, pos_y) VALUES(:pos_x, :pos_y);";
try{
$prep = $bdd->prepare($sql);
$prep ->bindvalue(':pos_x',$pos_x, PDO::PARAM_INT);
$prep->bindvalue(':pos_y',$pos_y, PDO::PARAM_INT);
header('Location: page_membre.php');
exit;
}catch(Exception $e){
//en cas d'erreur dans la requete
echo "Erreur " . $e->getMessage();
}
?>
pas de message erreur et la table map est non renseignée.
Tu as oublié le execute pour ta seconde requete