Inventaire PHP

Eléphanteau du PHP | 26 Messages

11 mai 2012, 23:15

Bonjour à tous !

J'essaie de créer un inventaire depuis une semaine mais je retrouve plusieurs erreur successive se qui m’en pèche d'arriver à mon but donc je fais appel à vous >_<

J'ai ma table principal appeler pirate : avec comme colonne importante id_pirate
En second, j'ai ma table inventaire avec : id_inventaire(primary) id_item, nbr_item et id_pirate
Pour finir, ma table item avec : id_item, nom_item, type.


Se que je voudrais faire, c'est que si le joueur a un item, sa lui affiche par exemple Potion de mana x5.


Voila le début du script que j'ai finalement arrêter :'(

	<?PHP
		$requete_inventaire = mysql_query('
		SELECT nom_item, COUNT(*) AS nbr_item
		FROM inventaire
		JOIN item USING (id_item)
		WHERE id_pirate="'.mysql_escape_string($_SESSION['id_pirate']).'"
		GROUP BY id_item, nom_item') 
		OR exit(mysql_error());
		
		while ($donnee = mysql_fetch_assoc($requete_inventaire)) {
			echo $donnee['nom_item'];
		}
	?>
Actuellement le problème c'est que j'ai ajouter des donné dans mes table pour faire comme si j'avais des items mais rien ne s'affiche...

Merci d'avance pour votre aide,
Cordialement,
Jeromus30.

Eléphant du PHP | 267 Messages

12 mai 2012, 10:15

salut,

execute ta requête SQL directement dans phpmyadmin ou dans un logiciel comme heidisql
pour vérifier si ta requête est correcte

dix2

Eléphanteau du PHP | 26 Messages

12 mai 2012, 16:46

Le script marche mais sa affiche toujours 1 dans le nbr_item aulieu d'affiche 10, 11 ou autre

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

14 mai 2012, 05:24

Salut,

À tu testé la requête comme demandé plus haut ? (donc en dehors de ton code, en indiquant un "id_pirate" en dur ?

A tu essayer de ne faire le group by que sur une seule colonne ?

Au pire poste les create table des deux tables (obtenu avec phpmyadmin par exemple) et un jeux d'essai.

@+
Il en faut peu pour être heureux ......

Ness
Invité n'ayant pas de compte PHPfrance

18 mai 2012, 12:05

Ta requête ne renvoie pas ce que tu cherches à faire! Tu as un nbr_item pas besoin de COUNT(*).
COUNT() va te retourner le nombre de lignes, ce n'est pas ce que tu veux je suppose... Là si je comprends bien, ton "pirate" peut disposer de plusieurs inventaires, et tu souhaites récupérer le nombre total de l'item X? Il faut faire une SUM(nbr_item).