Bonjour,

Voila je rencontre un petit problème de réflexion sur mon code.

Ce que j'ai fais

J'ai déjà coder la partie commande et paiement. En faite lorsque je fais une commande, un idée de commande est stocké en session cet idée correspond au dernièr id de commande de l'utilisateur + 1. Cependant si jamais l'utilisateur n° 2 a fait une commande et que l'utilisateur 1 en fait une aussi les Id ne vont t-il pas se valoir ? et le numéro de commande ne serais pas donc le même ?

Ce que je voudrais

Une idée pour pallier à ce problème.

Merci d'avance pour votre aide

5 réponses


sizo0
Réponse acceptée

Salut,

L'id de la commande doit être incrémental pour tous les utilisateurs.
Exemple
Nous avons 2 utilisateurs A et B.
Imaginons que l'utilisateur A ajoute une commande. L'id de cette dernière serait 1.
Plus tard, l'utilisateur B va ajouter une commande. Son id serait le 2.
Et ainsi de suite.

En espérant t'avoir aidé.

Salut, merci pour ton aide.
Je vois ce que tu veux dire, mais je ne vois pas trop comment faire. Ma requête actuelle est comme ça:

(J'utilise le query builder d'eloquent)

public function GenerateCommandNumber($id_user){

    $query = DB::table('Commande')->orderBy('id_commande', 'desc')->where('id_user', "=", $id_user)->take(1)->value('id_commande');
    $query = $query + 1;
    return $query;
  }

Le soucis c'est que je ne vois pas comment je peux incrémenter selon l'id de l'utilisateur

Quand tu ajoutes une commande, tu ne dois même pas préciser son id. Tu dois laisser ton SGBD (MySql je suppose) s'en occuper et ce en mettant le champs id en AUTO_INCREMENT.

Tu auras sûrement besoin de récupérer les commandes pour un utilisateur spécifique. Pour ce faire, tu dois ajouter une relation one to many entre la table utilisateurs et la table commandes. Ce qui veut dire qu'un utilisateur peut avoir plusieurs commandes mais une commande n'appartient qu'à un seul utilisateur.

Oui Je me suis chargé d'implémenter une relation de ce type: Commande 1,1 Est faite par 1,n Utilisateur, du coup j'ai laissé mon champ id AutoIncrement et récupérer la dernière commande effectué, merci pour ton aide, ce sujet est résolus.

Je t'en prie. Bon courage.