Bonjour,

Voilà j'ai un gros souçis avec une requête, je suis actuellement en train de faire un petit RPG en HTML avec PHP et Mysql et dans la partie du jeu qui s'occupe de l'inventaire du personnage j'ai un souçis

Voilà mes deux tables:

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
29
CREATE TABLE IF NOT EXISTS `car_inventory` 
(
  `inventoryItemId` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `inventoryItemCharacterId` int(5) NOT NULL,
  `inventoryItemItemId` int(5) NOT NULL,
  `inventoryItemQuantity` int(5) NOT NULL,
  `inventoryItemEquipped` int(2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
CREATE TABLE IF NOT EXISTS `car_items` (
  `itemId` int(11) NOT NULL,
  `itemRaceId` int(11) NOT NULL,
  `itemPicture` text NOT NULL,
  `itemType` varchar(30) NOT NULL,
  `itemLevel` int(11) NOT NULL,
  `itemLevelRequired` int(11) NOT NULL,
  `itemName` varchar(30) NOT NULL,
  `itemDescription` text NOT NULL,
  `itemHpEffect` int(11) NOT NULL,
  `itemMpEffect` int(11) NOT NULL,
  `itemStrengthEffect` int(11) NOT NULL,
  `itemMagicEffect` int(11) NOT NULL,
  `itemAgilityEffect` int(11) NOT NULL,
  `itemDefenseEffect` int(11) NOT NULL,
  `itemDefenseMagicEffect` int(11) NOT NULL,
  `itemWisdomEffect` int(11) NOT NULL,
  `itemPurchasePrice` int(11) NOT NULL,
  `itemSalePrice` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Contenu de la table car_items:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
INSERT INTO `car_items` (`itemId`, `itemRaceId`, `itemPicture`, `itemType`, `itemLevel`, `itemLevelRequired`, `itemName`, `itemDescription`, `itemHpEffect`, `itemMpEffect`, `itemStrengthEffect`, `itemMagicEffect`, `itemAgilityEffect`, `itemDefenseEffect`, `itemDefenseMagicEffect`, `itemWisdomEffect`, `itemPurchasePrice`, `itemSalePrice`) VALUES
(1, 0, 'http://localhost/item.png', 'Item', 1, 1, 'Potion', 'Cette petite fiole vous rendra 100 HP', 100, 0, 0, 0, 0, 0, 0, 0, 50, 10),
(2, 0, 'http://localhost/item.png', 'Item', 1, 1, 'Ether', 'Cette petite fiole vous rendra 10 MP', 0, 10, 0, 0, 0, 0, 0, 0, 50, 10),
(3, 0, 'http://localhost/item.png', 'Armor', 1, 1, 'Manteau de laine', 'Ce manteau vous ira a ravir.\r\nCet équipement est disponible pour toutes les classes', 10, 1, 1, 1, 1, 1, 0, 1, 100, 50),
(4, 0, 'http://localhost/item.png', 'Boots', 1, 1, 'Botte de laine', 'Ses bottes de laine sont 100% moutons.\r\nCet équipement est disponible pour toutes les classes', 10, 1, 1, 1, 1, 1, 0, 1, 100, 50),
(5, 0, 'http://localhost/item.png', 'Gloves', 1, 1, 'Gants de laine', 'Ses gants vous donneront vous protégerons des courants d\'air mais juste pour les mains.\r\nCet équipement est disponible pour toutes les classes', 10, 1, 1, 1, 1, 1, 0, 1, 100, 50),
(6, 0, 'http://localhost/item.png', 'Helmet', 1, 1, 'Casque de laine', 'Ce casque vous protégera juste de la pluie.\r\nCet équipement est disponible pour toutes les classes', 10, 1, 1, 1, 1, 1, 0, 1, 100, 50),
(7, 0, 'http://localhost/item.png', 'Weapon', 1, 1, 'Boule de laine', 'Cette boule de laine pourra être lancée sur vos ennemis en leur occasionnant peu de dégâts.\r\nCet équipement est disponible pour toutes les classes', 10, 1, 1, 1, 1, 1, 0, 1, 100, 50);
Dans la table car_inventory il n'y a que cet enregistrement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
INSERT INTO `car_inventory` (`inventoryItemId`, `inventoryItemCharacterId`, `inventoryItemItemId`, `inventoryItemQuantity`, `inventoryItemEquipped`) VALUES
(1, 1, 7, 1, 1);
Et pourtant quand je fais cette requêtes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT * FROM car_items, car_inventory 
WHERE itemId = inventoryItemItemId
AND itemType = 'Armor' 
OR itemType = 'Boots' 
OR itemType = 'Gloves' 
OR itemType = 'Helmet' 
OR itemType = 'Weapon'
AND inventoryItemCharacterId = ?
ORDER BY itemType
Il me sort 4 objets... Alors que dans la table car_inventory le joueur n'en possède que un seul avec l'Id 7 soit l'arme boule de laine (drôle de nom je sais ^^)
Mais alors pourquoi est-ce que il me sort 4 objets supplémentaire...

Voici le resulat:
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
127.0.0.1/caranille/car_inventory/		http://localhost/phpmyadmin/tbl_sql.php?db=caranille&table=car_inventory
 La sélection courante ne contient pas de colonne unique. Les grilles d'édition, les cases à cocher ainsi que les liens Éditer, Copier et Supprimer ne sont pas disponibles. 
 
 Affichage des lignes 0 -  3 (total de 4, traité en 0,0000 seconde(s))
 
SELECT * FROM car_items, car_inventory 
WHERE itemId = inventoryItemItemId
AND itemType = 'Armor' 
OR itemType = 'Boots' 
OR itemType = 'Gloves' 
OR itemType = 'Helmet' 
OR itemType = 'Weapon'
AND inventoryItemCharacterId = 1
ORDER BY itemType
 
itemId	itemRaceId	itemPicture	itemType   	itemLevel	itemLevelRequired	itemName	itemDescription	itemHpEffect	itemMpEffect	itemStrengthEffect	itemMagicEffect	itemAgilityEffect	itemDefenseEffect	itemDefenseMagicEffect	itemWisdomEffect	itemPurchasePrice	itemSalePrice	inventoryItemId	inventoryItemCharacterId	inventoryItemItemId	inventoryItemQuantity	inventoryItemEquipped	
 
4	0	http://localhost/item.png	Boots	1	1	Botte de laine	Ses bottes de laine sont 100% moutons. Cet équipe...	10	1	1	1	1 1	0	1	100	50	1	1	7	1	1	
5	0	http://localhost/item.png	Gloves	1	1	Gants de laine	Ses gants vous donneront vous protégerons des cour...	10	1	1	1	1	1	0	1	100	50	1	1	7	1	1	
6	0	http://localhost/item.png	Helmet	1	1	Casque de laine	Ce casque vous protégera juste de la pluie. Cet é...	10	1	1	1	1	1	0	1	100	50	1	1	7	1	1	
7	0	http://localhost/item.png	Weapon	1	1	Boule de laine	Cette boule de laine pourra être lancée sur vos en...	10	1	1	1	1	1	0	1	100	50	1	1	7	1	1
Merci beaucoup de votre aide car là je suis perdu.
En gros il faut que la requête recherche l'objet dans car_items avec l'enregistrement dans la table car_inventory Et il faut que l'objet soit de type soit Armor, Boots, Helmet, Gloves ou Weapon car il y a d'autre type d'objet comme des potions mais là je ne cherche à afficher que les objets de type équipement

Cordialement,