Salut Quentin,
Le code PHP que tu utilises est le bon.
Le problème ici est que, telle que ta base de données est conçue, tu ne peux stocker qu'une seule offre par client.
Je m'explique :
Premièrement, dans ta table "users" il manque une clé primaire. En règle général, il faut une clé primaire dans une table (sauf quelques très rares cas, compliqués à expliquer ici).
En l'occurence, pour une table stockant les utilisateurs, la clé primaire sera logiquement l'identifiant de l'utilisateur car il est unique.
Cependant, une clé primaire est "unique" elle ne peut pas avoir, pour deux lignes différentes de ta base de données, la même valeur.
Ce qui implique de ne pas dupliquer les données, justement... et donc, de ne pouvoir avoir, avec ton schéma actuel, qu'une seule offre par client !
Ce qu'il faut faire c'est :
- Mettre "id" en clé primaire (accessoirement, en AUTO_INCREMENT ça te facilitera la vie)
- Retirer la colonne "offre"
- Créer une table "offres" dans laquelle tu stockes les données relatives aux offres (comme leur prix, etc. ... )
- Créer une table "clients_offres" par exemple (tu la nommes comme tu veux) qui fera la jointure entre tes offres et tes clients.
Dans cette table clients_offres tu auras :
- une colonne client_id
- une colonne offre_id
La clé primaire sera cette fois la combinaison (client_id, offre_id) qui deviendra unique (sauf si un client peut avoir plusieurs fois la même offre, dans ce cas, ne le mets pas en clé primaire).
Ensuite, pour avoir les offres pour un client donné, la requête deviendra :
SELECT * FROM clients_offres WHERE client_id = $id
Et si tu veux récupérer les données de la table "offres" en même temps (pour avoir son nom par exemple) il faut faire une jointure :
SELECT * FROM clients_offres JOIN offres ON (clients_offres.offre_id = offres.id)
Voilà