JeuWeb - Crée ton jeu par navigateur
[Résolu] Optimiser un inventaire - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu] Optimiser un inventaire (/showthread.php?tid=703)

Pages : 1 2


[Résolu] Optimiser un inventaire - Byleth - 27-01-2007

Bonjour bonjour; j'ai une question :
voilà, je vais créer un inventaire,ça je devrai me débrouiller, et je voudrais que les personnages ne voient dans une liste ou il pourront choisir un objet (nourriture, arme) que ceux qu'ils possèdent réellement ainsi que leur nombre.

Pour cela, j'imagine que l'idéal est une simple boucle dans un formulaire, mais je ne sais pas comment je pourais afficher en même temps l'objet et le nombre.

Je m'explique : je pense créer une table avec une ligne par joueur, en colonne le nom des objets et le nombre qu'en possède le joueur.

Récupérer le nombre et n'afficher que ceux qui sont supérieurs à 0 c'est simple, mais comment afficher le nom de l'objet en même temps?

Voilà, je suis pressé par le temps donc pas forcément clair, donc je donnerai plus d'infos plus tard si besoin. Merci


RE: Optimiser un inventaire - tashimitsu - 27-01-2007

Bien alors, c' est simple a faire pour afficher l' image et le nom... Tien un ti shema(language php pas français ^^):

$exemple = mysql_query(requete);
while($ex = mysql_fetch_array($exemple))
{
?>
<img src="<?php echo $ex['image']; ?>.png">
<?php
echo " ".$ex['nombre']."<br>";
echo $ex['nom_objet'];
}

Voila Wink maintenant regarde bien ce script et ensuite si tu a compris le system tu pourra le faire sans probleme Wink
A! tu voit pour aller dans arme... met des boutons en haut ^^ si tu veut met du css pour que sa soit plus beau ^^ ++


RE: Optimiser un inventaire - Byleth - 28-01-2007

ça, ça marcherait si j'avais un tableau qui me donnerait :

id ; nom_objet ; nombre ; image ; nom_objet2 ; nombre2 ; image2....

Hors, si j'ai 45 types d'arme (j'exagère mais bon) mettons qu'on puisse éventuellement en avoir plusieurs, ça me ferait un tableau très compliqué et surtout mal rangé, moi je pensais à quelque chose de plus simple.

Sinon, je pensais écrire des trucs du style Pique-3 en mettant le "-" comme séparateur et en utilisant la fonction qui sait fractionner ça, mais ça me parait crado...


RE: Optimiser un inventaire - Maegia - 28-01-2007

Tu voudrais quelque chose comme ça ?

Code PHP :
<?php 
$req
= mysql_query('SELECT épée, bouclier, dildo, arc, ... FROM inventaire WHERE id_joueur = "'.$id_joueur.'"');
$da1 = mysql_field_name($req);
$da2 = mysql_fetch_row($req);
$nbr = mysql_num_fields($req);

for (
$i=0; $i<$nbr; $i++)
{
if (
$da2[$i] > 0)
{
echo
'Le joueur a '.$da2[$i].' '.$da1[$i].' dont l\'image est <img src="images/'.$da1[$i].'.jpg"><br />';
}
}



RE: Optimiser un inventaire - Byleth - 28-01-2007

ça serait parfait si j'ai bien compris.

mysql_field_name rend le nom des champs c'est ça? Si c'est le cas, c'est la fonction idéale et j'ignorais son existence.

Je pense que je vais plutôt créer un array composé de 2 array pour mettre dans mon formulaire select, mais le principe est le même avec mysql_fetch_array.

Merci beaucoup.

Peut être du coup pourriez vous me dire comment vous trouvez les fonctions dans ce genre, vous les épluchez toutes?


RE: Optimiser un inventaire - Globe - 28-01-2007

Bah sur jeuphp, beaucoup de gens ont fait leur métier du code, pour Maegia je ne sais pas, mais il à son jeu donc il à ptet cherché par lui même Wink


RE: Optimiser un inventaire - Maegia - 28-01-2007

Tu entres sur google : "Commenter obtenir le nom des colonnes d'une table MYSQL" et tu obtiens, comme premier lien : "mysql_field_name"... Wink


RE: Optimiser un inventaire - Byleth - 31-01-2007

Bon, j'ai un petit soucis. J'ai fait ça en m'inspirant de ce que m'a dit Maegia et en le retravaillant avec ce que je comprenais :

Code PHP :
<?php 
<p>Votre rat a
<?php

//initialisation des variables :

$nourriture = mysql_query("SELECT * FROM nourriture WHERE Id = '$id'");
$max= mysql_num_fields($nourriture);
$nombre= mysql_fetch_row($nourriture);

/* ça c'est une partie que j'avais faite avant qui ne pose pas de problème
if ($affame>=1)
{echo 'faim.</p>
<form action="statut.php" method="post">
<select name="nourriture">'; */

for ($i=1; $i<=$max; $i++){
$choix=mysql_field_name($nourriture,$i);
if (
$nombre[i] > 0)
{echo
'<option value="'.$choix.'">'.$choix.' '.$nombre.'</option>';}
}

/* ça aussi, à moins que je n'ai des problèmes de syntaxes php pour faire la jointure
echo '</select> <input value="Manger" type="submit" name="manger" / >
</form>';}
else
{echo 'mang&eacute;.</p>';} */

Le problème ce que j'obtiens les messages d'erreurs suivant et je ne les ai jamais vu :

Citation :Warning: mysql_query(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in h:\f\quentin\php\prophetiedesrats\statut.php on line 104

Warning: mysql_query(): A link to the server could not be established in h:\f\quentin\php\prophetiedesrats\statut.php on line 104

Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in h:\f\quentin\php\prophetiedesrats\statut.php on line 106

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in h:\f\quentin\php\prophetiedesrats\statut.php on line 107

Quelqu'un peut m'aider :heuuu:


RE: Optimiser un inventaire - Archange - 31-01-2007

Regarde dans ton fichier de config c'est peu etre pas le bon mot de pass ( ou bien simplement que tu n'a pas mis de code pour te connecter à ta bdd )

edit: des connerie j'avais mal lue ^^ autant pour moi


RE: Optimiser un inventaire - Byleth - 31-01-2007

Ok, c'est résolu, c'était juste un mysql_close() de mal placé. (bouh la honte, heureusement que j'ai compris seul quand même ^^)

Parcontre, mon code n'est toujours pas correct puisque je n'obtiens aucune options :mauvais:

Y'a aucun doute, c'est la boucle qui tient pas la route, comme si ma condition n'était jamais vérifiée.

>>Archange : je ne fais pas comme ça, j'inclus une bibliothèque de fonction où j'ai écrit une fonction connexion() qui me connecte direct, je trouve ça bien plus simple dans mon cas présent où je n'ai qu'une BDD