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


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

for ($i=1; $i<=$max; $i++)
{
$choix=mysql_field_name($nourriture,$i);

if ($nombre[$i] > 0)
{
echo '<option value="'.$choix.'">'.$choix.' '.$nombre.'</option>';
}
}


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

Magnifique

Bon, j'ai un peu honte d'une telle bêtise, (surtout de pas avoir réussi à la débusquée ^^) mais malheureusement un problème ne vient jamais seule. J'avais mal utilisé ma variable $nombre ce qui me rendait "array" :mauvais:

C'est règlé, merci pour votre aide, je progresse de jours en jours même si c'est encore loin d'être ça ^^.


RE: Optimiser un inventaire - Byleth - 13-02-2007

Après un petit moment loin de mon code pour cause d'arrachage de cheveux, je reviens pour essayer de le débugger.

Voilà, tout allait très bien dans ma vie d'étudiant en informatique jusqu'au jours où un collègue webmaster de mes connaissances me tint à peu près ec language :
"T'as pensé à mettre des vérifs partout?"
Moi :"Mais là pas de problème, lorsque l'on ne possède pas quelque chose, il n'apparait pas"
"Et le F5?"
"glaaaaaaaaaaaaaaedgezrgzregzrthzrthrzth[biiiiiiiiiiiiiiiiiiiiiiiip]dfghdsh"

Donc, j'ai modifié très légèrement mon code pour qu'il s'assure que les joueurs possèdent bien ce qu'ils consomment.

Mais là, problème :
-> je mets une variable $ok qui me dit si oui ou non c'est possible de consommer.
-> cette variable se trouve dans ma bibliothèque que j'appelle en include
-> dans mon code principale, j'appelle la variable, mais il ne la connait pas. Donc voilà mon code

Code PHP :
<?php 
//Ajouter-soustraire dans une BdD (dans bibliothèque.php)
function soustraire($modifie,$nombre,$table)
{
$reponse=mysql_query("SELECT $modifie FROM $table WHERE Id='1'") or die(mysql_error());
$resultat = mysql_fetch_array ($reponse);
$total=$resultat[$modifie];

$ok=false;
if (
$total>0)
{
$total=$total+$nombre;
mysql_query("UPDATE $table SET $modifie = $total WHERE Id='1'") or die(mysql_error());
$ok=true;}

return
$ok;
}

et son utilisation
Code PHP :
<?php 
if (isset($_POST['manger']))
{
$consomme=$_POST['nourriture'];
echo
$consomme;
$table="nourriture";
$nombre=(-1);
soustraire($consomme,$nombre,$table);
if (
$ok) {
mysql_query("UPDATE rat SET Affame = 0 WHERE Id='$id'");}
else {echo
'Vous n\'avez pas assez de '.$consomme.'.';}

}

Voilà, c'est juste $ok qui coince, mais moi aussi je coince...


RE: Optimiser un inventaire - Seren - 13-02-2007

Byleth a écrit :Après un petit moment loin de mon code pour cause d'arrachage de cheveux, je reviens pour essayer de le débugger.

Voilà, tout allait très bien dans ma vie d'étudiant en informatique jusqu'au jours où un collègue webmaster de mes connaissances me tint à peu près ec language :

<snip>

Voilà, c'est juste $ok qui coince, mais moi aussi je coince...

Si t'es étudiant en informatique revois la partie de cours qui s'appelle "portée des variables".

Si tu définis une variable dans une fonction, elle existe uniquement dans cette variable, mais en dehors non.

En plus, ici ta fonction retourne un résultat mais tu le gardes pas, il se perds dans la nature

Donc il faut récupérer cette valeur de retour.
Essaye ça

Code PHP :
<?php 
if (isset($_POST['manger']))
{
$consomme=$_POST['nourriture'];
echo
$consomme;
$table="nourriture";
$nombre=(-1);
$result = soustraire($consomme,$nombre,$table);
if (
$result) {
mysql_query("UPDATE rat SET Affame = 0 WHERE Id='$id'");}
else {echo
'Vous n\'avez pas assez de '.$consomme.'.';}

}

ou ça

Code PHP :
<?php 
if (isset($_POST['manger']))
{
$consomme=$_POST['nourriture'];
echo
$consomme;
$table="nourriture";
$nombre=(-1);
if (
soustraire($consomme,$nombre,$table)) {
mysql_query("UPDATE rat SET Affame = 0 WHERE Id='$id'");}
else {echo
'Vous n\'avez pas assez de '.$consomme.'.';}

}



RE: Optimiser un inventaire - Byleth - 13-02-2007

(heu après, j'ai fait 3 cours de java donc j'en connais plus en php de par moi même que par la fac ^^)

Bon, je ne pensais pas que j'avais besoin de faire ça comme ça.

Le problème, c'est que ma fonction soustraire ne se contente pas de me rendre un booléen, elle a deux actions en 1.

Donc là, on doit soustraire à la table (ce que je faisais déjà) et obtenir un booléen.
Mais si j'écris un truc du style

$result=soustraire(blabla)

est-ce qu'il fera bien les 2?


RE: Optimiser un inventaire - Byleth - 13-02-2007

Ah oui tien, merci beaucoup, j'ai pratiquement finit mon module élevage ^^


RE: Optimiser un inventaire - Seren - 13-02-2007

Byleth a écrit :(heu après, j'ai fait 3 cours de java donc j'en connais plus en php de par moi même que par la fac ^^)

Bon, je ne pensais pas que j'avais besoin de faire ça comme ça.

Le problème, c'est que ma fonction soustraire ne se contente pas de me rendre un booléen, elle a deux actions en 1.

Donc là, on doit soustraire à la table (ce que je faisais déjà) et obtenir un booléen.
Mais si j'écris un truc du style

$result=soustraire(blabla)

est-ce qu'il fera bien les 2?

Il faut distinguer le contenu de la fonction et la valeur de retour renvoyé par return.

Le contenu de la fonction est toujours effectuée quoiqu'il arrive ( aux erreurs de codage près).

La valeur de retour est uniquement ce que tu récupères quand tu fais:
$result = myfunction( , );

En général en retour, on retourne un code d'erreur comme tu fais pour savoir si tout c'est bien passé.

Mais on peut aussi faire des trucs du style :
Code PHP :
<?php 
function Max($a,$b){
if (
$a>$b)
return
$a;
else
return
$b;
}



RE: Optimiser un inventaire - Byleth - 14-02-2007

Alors là parcontre, mes toutes jeunes connaissances te déconseillent de faire ça.
Tout du moins en Java c'est très mauvais.

On m'a conseillé d'introduire $c avec
Code PHP :
<?php 
if ($a>$b) {$c=$a;}
else {
$c=$b;}
return
$c;

Bon bah j'aurais appris quelquechose de très intéressant aujourd'hui et qui me sera très utile par la suite.

Merci beaucoup