JeuWeb - Crée ton jeu par navigateur
Méthodes d'affichage : question - 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 : Méthodes d'affichage : question (/showthread.php?tid=2715)

Pages : 1 2


Méthodes d'affichage : question - manip - 05-07-2008

Bonsoir à tous Smile

Pendant cette petite soirée de codage, je me posais une petite question...

Sur mon site, je dois afficher une liste de batiment que le joueur peut construire et je réfléchissais à la façon de faire cela et il m'est alors venu en tête deux idées que je vous soumais afin de savoir laquelle est la meilleur.

Première méthode :

connexion a mysql, recuperation des données
boucle
{
nom1 (niveau1)
description1
condition requise pour up1

nom2 (niveau2)
description2
condition requise pour up2

nom3 (niveau3)
description3
condition requise pour up3
}

etc

Deuxième méthode :

fonction ()
{
connection a mysql, recuperation des données
nom (niveau)
description
condition requise pour up
}

appel de la fonction pour le 1er bâtiment
appel de la fonction pour le 2e bâtiment
etc

La première méthode me fait recopier beaucoup de fois le même code et je pense que cela n'est pas normal... Par contre la deuxième, j'aurais une connection à la base pour chaque bâtiment... Ca ne fait pas un peu "lourd" ?!

Si quelqu'un à une autre idée, je suis preneur Wink

Bonne soirée


RE: Méthodes d'affichage : question - Kassak - 05-07-2008

Euh, tu as pas compris le principe d'un boucle...

Si tu as une table "batiment", avec un champ "nom", et 2 entrées : nom_1 et nom_2.

Tu fais ta requête, tu boucles et un simple echo $nom_batiment dans la boucle te donnera :

nom_1 nom_2 etc....


Il est ou le problème?


RE: Méthodes d'affichage : question - emaia - 05-07-2008

Bonsoir,
Pour moi la meilleure solution reste le array() avec une boucle, il est simple d'utilisation et surtout très pratique.
Code PHP :
<?php 
$nb
= 0;
// Requete et récupération des données MYSQL
$requete = mysql_query("...");
while (
$retour = mysql_fetch_array($requete)){
$bat[$nb]["nom"] = $retour['nom'];
$bat[$nb]["desc"] = $retour['description'];
$bat[$nb]["cond"] = $retour['condition'];
// Incrémentation
$nb++;
}

// On affiche le résultat
for ($i=0;$i<$nb;$i++){
echo
$bat[$i]["nom"]." <br>";
echo
$bat[$i]["desc"]." <br>";
echo
$bat[$i]["cond"];
}

Voila, sans trop de code Smile
Cordialement, emaia.


RE: Méthodes d'affichage : question - manip - 05-07-2008

Kassak a écrit :Euh, tu as pas compris le principe d'un boucle...

Si tu as une table "batiment", avec un champ "nom", et 2 entrées : nom_1 et nom_2.

Tu fais ta requête, tu boucles et un simple echo $nom_batiment dans la boucle te donnera :

nom_1 nom_2 etc....


Il est ou le problème?

Oui mais si le batiment n'a pas encore été construit, il n'existe pas dans la base de donnée mais je dois quand même l'affiché sur la page si le joueur peut le faire. ET la ca coince, car s'il n'est pas dans la base, il ne s'affiche pas dans la boucle.


RE: Méthodes d'affichage : question - Kassak - 05-07-2008

Ils existent bien quelque part dans ta base de données non?

Donc soit tu fais une boucle pour afficher tous les bâtiments qu'il a, et une autre pour ce qu'il peut faire, soit tu fais une seule boucle ou tu affiches TOUS les bâtiments, qu'il a ou qu'il n'a pas et à chaque fois tu cherches si le bâtiment est déjà construit ou pas.

Si oui, tu n'affiches que le nom, si non, tu affiches un lien "construire", etc...

Tu vois le truc?


RE: Méthodes d'affichage : question - manip - 05-07-2008

Oui je vois le truc, mais justement le voulais éviter de mettre directement tous les batiments dans la base, je voulais les mettre au fur et a mesure que le joueur les construit.

Car par exemple, pour une liste de soldat, il y en a qui ne seront peut etre jamais recruter et présent dans la base de donnée....

emaia : pas mal, mais c'est plus compliquer que ça, parce que j'ai oublier de dire que j'ai des conditions a respecter pour l'affichage du nom, description etc des bâtiments =)


RE: Méthodes d'affichage : question - Kassak - 05-07-2008

Tu te fais une table, avec la liste de toutes les unités existantes dans le jeu
Pareil avec les bâtiments

Tu vas pas créer l'unité à chaque fois qu'un joueur la recrute ?


RE: Méthodes d'affichage : question - manip - 05-07-2008

Kassak a écrit :Tu vas pas créer l'unité à chaque fois qu'un joueur la recrute ?

Non mon idée, c'était que : le joueur créer une unité, je regarde si elle existe, si elle n'existe pas, je fais un insert into et dans le cas contraire ou elle existe déjà, je fais un update.


RE: Méthodes d'affichage : question - Kassak - 05-07-2008

Bon explique clairement ce que le joueur peut faire avec les unités sinon on va tourner en rond pendant 2h Wink

Si le joueur choisit une unité dans une liste, il faut bien que tu stock la liste quelque part non? Dans une table par hasard? Tu dis si elle existe, mais où? dans quelle table?

Pour que t'arrives à faire un truc faut que se soit déjà clair dans ta tête Wink


RE: Méthodes d'affichage : question - manip - 05-07-2008

Dans ma tête c'est clair, mais j'ai peut être un soucis pour m'exprimer ^^..

Le principe :
Le joueur a une caserne dans laquelle il peut recruter des unites. Sur cette page, il y a une liste (écrit en texte qui ne sort pas de la base de donnée) avec des unités qu'il peut créer. Il choisi le nombre d'unité qu'il veut faire au moyen d'un champ input d'un formulaire et il valide.

A cote du nom de chaque unité, j'affiche le nombre de cette unité que le joueur possede. Nombre enregistré dans la base de donnée dans la table soldat :
id_joueur | id_terrain | nom | nombre

C'est pareil pour les batiments, si ce n'est que pour les augmenter, il clique sur un lien. Et a cote du nom du batiment j'affiche son niveau.
la table batiment :
id_joueur | id_terrain | nom | niveau