JeuWeb - Crée ton jeu par navigateur
[Résolu] Récupéré des info de la bdd - 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] Récupéré des info de la bdd (/showthread.php?tid=1419)

Pages : 1 2


[Résolu] Récupéré des info de la bdd - manip - 06-07-2007

Bonsoir,

[Image: mysqlhx2.gif]

Je voudrais savoir par quel moyen puis-je récupérer le niveau de l'arme associée à ce nom-là.

Pour le moment j'arrive à afficher tout ce que se trouve dans le champ nom ou niveau au moyen d'un mysql_fetch_array ou row. Seulement, pour faire des conditions sur le niveau des armes, j'aurais besoin de récupérer l'arme avec son niveau (juste celle-la et pas les autres). Et s'est là que ça coince....

Quelqu'un peut m'éclairer ?


RE: Récupéré des info de la bdd - nemesis_elite - 06-07-2007

Salut, c'est tout simple !
Code PHP :
<?php 
$req
= mysql_query('SELECT nom, niveau FROM nom_de_la_table WHERE nom=\'Armes\' ');
$aRes = mysql_fetch_assoc($req);

// $aRes['nom'] retourne 'Armes'
// $aRes['niveau'] retourne '12'
Rien de bien compliqué, va voir sur le Site Du Zéro si t'arrive même pas a faire ça !


RE: Récupéré des info de la bdd - Wells - 06-07-2007

Code PHP :
<?php 
$sql
= "SELECT Niveau FROM nom_de_la_table WHERE nom='Armes'";
$req = mysql_query($sql) or die(retourne_erreur(mysql_error(),$sql));
$data = mysql_fetch_array($req);
$Niveau = $data['Niveau'];

Cepandant tu as un gros soucis de modélisation. Tu ne devrais pas avoir "Armes" dans ta table mais l'id de l'arme en question.


RE: Récupéré des info de la bdd - manip - 07-07-2007

Bon, vu que je vois que personne ne répond, je vais tenter de ré-expliquer mon problème avec plus de détails.

J'ai une page recherche, dessus je fais une requête pour sélectionner toutes les recherches que je mets dans une boucle afin de les afficher (jusque la par de problème). Seulement certaines recherches se débloquent avec d'autre recherche.

Exemple pour avoir la recherche "armes" il faut avoir la recherche "caserne". Si ce n'est pas le cas, on n'affichera pas la recherche "armes" dans le centre de recherche. Pour ce faire, je vais utiliser un if. Là où je bloque c'est au moyen de récupérer le nom et le niveau de la recherche "caserne". Je peux le faire au moyen d'une seule requête comme me la gentiment rappelé nemesis_elite mais le problème c'est que j'ai au moins une 20 de requête à faire et donc ça fait un peu beaucoup. Ni a t-il pas une solution pour éviter de faire les requêtes une à une ?


RE: Récupéré des info de la bdd - carlou - 07-07-2007

manip a écrit :Bon, vu que je vois que personne ne répond, je vais tenter de ré-expliquer mon problème avec plus de détails.

effectivement tu n'est pas clair du tout ^^

manip a écrit :Seulement certaines recherches se débloquent avec d'autre recherche.

et tu le definit ou cela?

manip a écrit :Exemple pour avoir la recherche "armes" il faut avoir la recherche "caserne". Si ce n'est pas le cas, on n'affichera pas la recherche "armes" dans le centre de recherche. Pour ce faire, je vais utiliser un if. Là où je bloque c'est au moyen de récupérer le nom et le niveau de la recherche "caserne". Je peux le faire au moyen d'une seule requête comme me la gentiment rappelé nemesis_elite mais le problème c'est que j'ai au moins une 20 de requête à faire et donc ça fait un peu beaucoup. Ni a t-il pas une solution pour éviter de faire les requêtes une à une ?

voir reponse au dessus, comment tu defini le level d'une arme?


RE: Récupéré des info de la bdd - manip - 07-07-2007

carlou a écrit :
manip a écrit :Seulement certaines recherches se débloquent avec d'autre recherche.

et tu le definit ou cela?

Une page "arbre technologique" est prévue. Un peu comme sur Ogame si tu connais... On voit les recherches et le niveau des autres recherches à posséder pour les débloquer ...

Ensuite lorsque j'affiche les résultats je fais une boucle avec un if pour chaque recherche. Il me suffira d'ajouter les niveaux des recherches à débloquer dans le if. Et si le niveau n'est pas assez haut, on n' affiche rien.

Sinon le level d'une arme....
Bah le joueur débloque le centre de recherche, ensuite il va dedans, là il y a "armes niveau 0" il clique sur le lien qui va ajouter un 1 dans la base de donnée pour la recherche "armes"... Comme sur OGame pour faire simple ^^


RE: Récupéré des info de la bdd - carlou - 07-07-2007

Je comprends pas trop ton fonctionnement donc voila ce qu'il me semble repondre a ta demande

Code PHP :
<?php 
$req
= mysql_query('SELECT nom, niveau FROM nom_de_la_table');
whyle ($aRes = mysql_fetch_assoc($req)){
if (
$aRes['nom']=='Armes' and $niveau_requis_pour_arme=="ok"){
echo
'Acces a la recherchede armes niveau :'.$aRes['niveau'];
}
if (
$aRes['nom']=='Bouclier' and $niveau_requis_pour_bouclier=="ok"){
echo
'Acces a la recherchede bouclier niveau :'.$aRes['niveau'];
}
}



RE: Récupéré des info de la bdd - manip - 07-07-2007

Sensiblement oui ça serait plutôt quelque chose comme ca :

Code PHP :
<?php 
$req
= mysql_query('SELECT nom, niveau FROM nom_de_la_table');
whyle ($aRes = mysql_fetch_assoc($req)){
if (
$aRes['nom']=='Armes' and $aRes['niveau'] >= 4){
echo
'Cannon<br /> <a href="upgrade.php?">Passer au niveau suivant</a>';
}
if (
$aRes['nom']=='Bouclier' and $aRes['niveau'] >=2){
echo
'Mur<br /> <a href="upgrade.php">Passer au niveau suivant</a>';
}
}

Ca marche, mais si je fais
Code PHP :
<?php 
if ($aRes['nom']=='Armes' and $aRes['niveau'] >= 4 && $aRes['nom']=='Bouclier' and $aRes['niveau'] >=2){
echo
'Forteresse<br /> <a href="upgrade.php">Passer au niveau suivant</a>';
}
bah ça marche plus ...


RE: Récupéré des info de la bdd - carlou - 07-07-2007

normal, tu ne peux pas avoir
$aRes['nom']=='Armes' et $aRes['nom']=='Bouclier' en meme tempspas ce systeme. dans ce cas, ce que tu peux faire eventuellement c'est:

Code PHP :
<?php 
$req
= mysql_query('SELECT nom, niveau FROM nom_de_la_table');
whyle ($aRes = mysql_fetch_assoc($req)){
$niveau[$aRes['nom']] = $aRes['niveau'];
}


if (
$niveau['Armes'] >= 4){
echo
'Cannon<br /> <a href="upgrade.php?">Passer au niveau suivant</a>';
}
if (
$niveau['Bouclier'] >=2){
echo
'Mur<br /> <a href="upgrade.php">Passer au niveau suivant</a>';
}



RE: Récupéré des info de la bdd - carlou - 07-07-2007

m'ai gouré, comme tu es connecte, je fais un double post

c'est

Code PHP :
<?php 
if ($niveau['Armes'] >= 4 && $niveau['Bouclier'] >=2){
echo
'Forteresse<br /> <a href="upgrade.php">Passer au niveau suivant</a>';
}