Salut ^^
A nouveau, je viens avec un problème simple, mais après plus d'une heure à chercher, j'abandonne...
A l'heure actuelle dans mon code, les fonctions pour charger des données revoient au code appelant une ressource mysql brute, celle-ci est parfaitement utilisable. Un simple while avec un fetch me crée un tableau qui me permet de créer un nouvel objet puis de lui assigner les données. Le tout très simplement.
A part que ça me semblerait mieux que tant qu'à charger les cartes, la class "GestionCarte", puisse me faire directement les objets.
Pour la version où je ne charge qu'une seule carte, ça passe tout seul. Mais quand j'ai voulu faire la version qui me les charge toute... bah ça passe plus du tout... J'ignore tout simplement comment je peux faire pour retourner plusieurs objets, si c'est possible bien sûr...
A nouveau, je viens avec un problème simple, mais après plus d'une heure à chercher, j'abandonne...
A l'heure actuelle dans mon code, les fonctions pour charger des données revoient au code appelant une ressource mysql brute, celle-ci est parfaitement utilisable. Un simple while avec un fetch me crée un tableau qui me permet de créer un nouvel objet puis de lui assigner les données. Le tout très simplement.
A part que ça me semblerait mieux que tant qu'à charger les cartes, la class "GestionCarte", puisse me faire directement les objets.
Pour la version où je ne charge qu'une seule carte, ça passe tout seul. Mais quand j'ai voulu faire la version qui me les charge toute... bah ça passe plus du tout... J'ignore tout simplement comment je peux faire pour retourner plusieurs objets, si c'est possible bien sûr...
class GestionCarte
{
public static function Charger($id)
{
//forcer le passage de $id en entier (via intval)
//Récupération de données sur la table avec un WHERE
$id=intval($id);
$rq="select * from carte_global where ID=".$id."";
$ressource=Sql::requeteReponse($rq);
$mysql = $ressource->fetch_assoc();
$carte = new Carte;
$carte = AssignerCarte($mysql);
return $carte;
}
public static function ChargerToutes($id)
{
//Récupération de toutes les cartes via les tables
$rq="select * from carte_global";
$ressource=Sql::requete($rq);
return $ressource;
}
}
class Carte
{
private $ID;
private $Nom;
private $Largeur;
private $Hauteur;
private $Altitude;
private $Niveau_min;
public function AssignerCarte(array $arr)
{
//permet d'assigner les valeurs aux attributs à partir d'un array : $arr['ID'], $arr['Nom'], $arr['Largeur'], $arr['Hauteur'], $arr['Altitude'].
//Ces valeurs sont issues d'un formulaire et formater en tableau ou issus de la classe GestionCarte;
foreach ($arr as $key => $value) {
$this->$key = $value;
}
unset($arr);
}
public function AssignerChamps($champs,$valeur)
{
if($champs!='Nom')
{
if(filter_var($valeur, FILTER_VALIDATE_INT)&&$valeur>0)
{
$this->$champs=$valeur;
}
}
else
{
$this->$champs=$valeur;
}
}
public function RetourAttribut()
{
foreach($this as $key => $value) {
$arr[$key]=$value;
}
return $arr;
}
}