Aidez-moi à faire un UPDATE dans MySQL-PHP-PDO sur des données de différentes Table d'un même utilisateur ?

Eléphant du PHP | 137 Messages

02 févr. 2022, 05:14

Bonjour.

Par exemple, pour sélectionner des données d'un seul Utilisateur avec SELECT dans deux différentes tables tbl_users pour u, et tbl_address pour a, comme ceci:

Code : Tout sélectionner

$client_number = $_GET['client_number']; $sql = "SELECT u.id, u.fname, u.lname, u.national_id, u.client_number, u.email, u.phone, u.profile_pic, a.address, a.id AS acc_id FROM tbl_users u, tbl_address a WHERE client_number = ? AND u.id = a.user_id";
Déjà, je l'ai fais sans même être sûr car je voulais finir de coder avant d'essayer.

Mais, je suis bloqué quand j'essaie d'écrire la requête UPDATE pour mettre à jour les même données que je viens de récupérer via le SELECT ci-dessus.

Comment faire un UPDATE avec jointure sachant que tous les champs du même utilisateur à mettre à jour ne sont pas dans la même table ???

Merci de m'aider.

Mammouth du PHP | 2703 Messages

02 févr. 2022, 09:19

un update par table

mais s'il y a des données en doublon dans plusieurs tables, c'est qu'il y a un problème de conception de la base de données.

Eléphant du PHP | 137 Messages

02 févr. 2022, 09:59

un update par table

mais s'il y a des données en doublon dans plusieurs tables, c'est qu'il y a un problème de conception de la base de données.
Mais mon souci n'est pas un problème de doublon. L'utilisateur connecté a son adresse pas dans la table tbl_users mais plutôt dans la table tbl_address.

Et donc, je voudrais donc mettre à jours les données du même utilisateurs qui sont dans les deux tables.

Eléphant du PHP | 345 Messages

15 févr. 2022, 18:18

peut-etre avec une jointure de table, du genre
$pdostat = $bdd->prepare("UPDATE tbl_users INNER JOIN tbl_address ON tbl_address.fname = blabla , tbl_address.lname= blalbla, etc SET tbl_users=blabla, etc... ");
$pdostat->execute();