Bonjour ou bonsoir tout le monde ^^

Voilà j'ai un petit soucis et connaissant la communauté je sais que certain sont assez fort :p

Voilà j'ai un petit RPG en PHP qui utilise Mysql et dans le panel administration du jeu on peut attribuer un objet à un monstre avec un taux de loot (taux en % pour obtenir cet objet)

Et sur ce panel il y a un select qui affiche tous les objets du jeu mais j'aimerai ignorer ceux faisant déjà parti du loot du monstre


Voici la requêtes qui affiche les objets du monstre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
$monsterDropQuery = $bdd->prepare("SELECT * FROM car_monsters, car_items, car_monsters_drops
WHERE monsterDropMonsterID = monsterId
AND monsterDropItemId = itemId
AND monsterDropMonsterId = ?
ORDER BY itemName");
$monsterDropQuery->execute([$adminMonsterDropMonsterId]);
$monsterDropRow = $monsterDropQuery->rowCount();
Voici la requête qui affiche la liste des objets du jeu où on peut les ajouter au monstre:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$itemQuery = $bdd->query("SELECT * FROM car_items
ORDER BY itemName");
$itemRow = $itemQuery->rowCount();
Mon souhaits est que de ne plus afficher les objets qui sont déjà sur le monstre (Car on ne peut pas mettre deux fois le même objets)

Merci de votre aide

Voici la table Monstre et celle qui contient les loots

Code : 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
 
CREATE TABLE IF NOT EXISTS `car_monsters` (
  `monsterId` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `monsterPicture` varchar(50) NOT NULL,
  `monsterName` varchar(30) NOT NULL,
  `monsterDescription` text NOT NULL,
  `monsterLevel` int(11) NOT NULL,
  `monsterHp` int(11) NOT NULL,
  `monsterMp` int(11) NOT NULL,
  `monsterStrength` int(11) NOT NULL,
  `monsterMagic` int(11) NOT NULL,
  `monsterAgility` int(11) NOT NULL,
  `monsterDefense` int(11) NOT NULL,
  `monsterDefenseMagic` int(11) NOT NULL,
  `monsterWisdom` int(11) NOT NULL,
  `monsterExperience` int(11) NOT NULL,
  `monsterGold` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
CREATE TABLE IF NOT EXISTS `car_monsters_drops`
(
  `monsterDropID` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `monsterDropMonsterId` int(11) NOT NULL,
  `monsterDropItemId` int(11) NOT NULL,
  `monsterDropItemVisible` varchar(3),
  `monsterDropRate` int(11) NOT NULL,
  `monsterDropRateVisible` varchar(3)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
P.S: j'avais pensé à faire ça mais ça ne fonctionne pas

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
$itemQuery = $bdd->prepare("SELECT * FROM car_items
WHERE (SELECT COUNT(*) FROM car_monsters_drops
WHERE monsterDropMonsterId = ?
AND monsterDropItemId = itemId) = 0
ORDER BY itemName");
$itemQuery->execute([$adminMonsterDropMonsterId]);
$itemRow = $itemQuery->rowCount();