06-05-2009, 11:04 PM
bonjour ,je vous explique mon problème
j'ai deux tables :
l'une appeler user ,l'autre appeler ressource
Dans la table user ,il a les champs "id" "attaque" et "defence"
dans la table ressource,il y a les champs "id" "minedefer" et "minedebois"
voici un tableau récapitulatif
TABLE user
CHAMPS id attaque defence
VALEURS 1 0 0
TABLE ressource
CHAMPS id minedefer minedebois
VALEURS 1 0 0
jai creer deux tableaux
j'ai deux tables :
l'une appeler user ,l'autre appeler ressource
Dans la table user ,il a les champs "id" "attaque" et "defence"
dans la table ressource,il y a les champs "id" "minedefer" et "minedebois"
voici un tableau récapitulatif
TABLE user
CHAMPS id attaque defence
VALEURS 1 0 0
TABLE ressource
CHAMPS id minedefer minedebois
VALEURS 1 0 0
jai creer deux tableaux
Code PHP :
<?php
$element (
1=> "attaque",
2 => "defence",
3=> "minedefer",
4 => "minedebois",
);
$requis (
3=> array( 1= >2, 2 => 3)
);
En gros cela signifie que pour avoir l'objet $element[3] (mine de fer), il faut $element[1] au niveau 2 ET $element[2] au niveau 3, donc j'aimerais avoir une fonction qui me dis si oui ou non un objet est accessible.
J'ai cet fonction qui marche uniquement quand les champs sont dans la meme table:
Code PHP :
<?php
function IsTechnologieAccessible($iduser, $idressource, $Element) {
global $requis, $element,$dbh;
$id=$_SESSION['id'];
$res= "SELECT * FROM ressource WHERE id='$id'";
$sth1=$dbh->query($res);
$result1 = $sth1->fetchALL(PDO::FETCH_ASSOC);
foreach($result1 as $planet){
if (isset($requeriments[$Element])) {
$enabled = true;
foreach($requeriments[$Element] as $ReqElement => $EleLevel) {
if (@$user[$element[$ReqElement]] && $user[$element[$ReqElement]] >= $EleLevel) {
// break;
} elseif ($planet[$element[$ReqElement]] && $planet[$element[$ReqElement]] >= $EleLevel) {
$enabled = true;
} else {
return false;
}
}
return $enabled;
} else {
return true;
}
}
}