Bonjour,
Je suis dans la création d'un logiciel pour faire un inventaire de stock physique avec différents zones, différents stock et plusieurs utilisateurs.
Chaque utilisateur se connecte avec un identifiant et mot de passe, ils sont associés a 1 stock et plusieurs zones.
Structure de la base de données :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 TABLE `comptage_zone` ( `id_comptage` int(11) NOT NULL, `ref_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, `lieu_id` int(11) NOT NULL, `zone_id` int(11) NOT NULL, `quantity` int(11) NOT NULL )Le listing des articles se fait via une recherche :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 TABLE `reserve` ( `id` int(11) NOT NULL, `name` varchar(100) NOT NULL, `name2` varchar(255) NOT NULL, `name3` varchar(255) NOT NULL, `ref` varchar(30) NOT NULL, `family` varchar(30) NOT NULL )
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $query = " SELECT * FROM reserve LEFT JOIN comptage_zone ON reserve.id = comptage_zone.ref_id WHERE ref LIKE '".$search."%' ORDER BY id LIMIT 20 ";
L'insertion de la quantité d'un article :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 function comptage_zone($ref,$user,$lieu,$zone,$quantity){ $bdd = mysqli_connect("localhost","user","mdp","database"); $sql="SELECT * FROM comptage_zone WHERE ref_id= $ref AND user_id= $user AND lieu_id= $lieu AND zone_id= $zone"; if($result = mysqli_query($bdd,$sql)){} $row_cnt = mysqli_num_rows($result); if ($row_cnt==1){ $sql = "UPDATE comptage_zone SET quantity= $quantity WHERE ref_id= $ref AND user_id= $user AND lieu_id= $lieu AND zone_id= $zone "; $requete = mysqli_query($bdd,$sql); $_SESSION['flash']['success'] = "Le comptage a été mise a jour !"; header('Location: zone.php?zone='.$zone.'&c='.$_SESSION['zone']); exit(); }else { $sql = "INSERT INTO comptage_zone ( ref_id, user_id, lieu_id, zone_id, quantity) VALUES( $ref, $user, $lieu, $zone, $quantity)"; $requete = mysqli_query($bdd,$sql); // debug($sql); $_SESSION['flash']['success'] = "Le comptage a été ajouté !"; header('Location: zone.php?zone='.$zone.'&c='.$_SESSION['zone']); exit(); } }
Si l'utilisateur 1 se connecte, il selection la zone 1 (pour exemple), il a bien le tableau avec les différentes articles qui s'affiche, il fait l'ajout d'une quantité sur la référence article 1.
Quand l'utilisateur 2 se connecte, qu'il sélectionne la même zone ou une autre zone, il peux voir la quantité que l'utilisateur 1 a mis.
Et cela me pose probleme que l'utilisateur 2 voir ce que l'utilisateur 1 a rentré, ainsi que la zone n'est pas la même !
J'ai essayé de modifier la recherche des articles comme ceci :
Mais cela rends l'article non disponible pour les autre utilsateurs.
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $query = " SELECT * FROM reserve LEFT JOIN comptage_zone ON reserve.id = comptage_zone.ref_id WHERE ref LIKE '".$search."%' AND user_id=".$_SESSION['auth']->user_id." AND lieu_id=".$_SESSION['auth']->lieu_id." AND zone_id=".$_SESSION['shop']." ORDER BY id LIMIT 20 ";
J'aimerai trouvé la solution pour qu'un utilisateur voit uniquement les quantités qui a rentré et aussi dans la zone choisie.
Je reste disponible pour toute information supplémentaire
Merci d'avance pour votre aide,
Kris
Partager