Aide pour Tableaux PHP

Fermé
alexcamb87 Messages postés 79 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 5 juin 2011 - 7 mars 2010 à 11:07
boz75 Messages postés 45 Date d'inscription vendredi 28 août 2009 Statut Membre Dernière intervention 27 septembre 2015 - 7 mars 2010 à 13:41
Bonjour,
j'essaye tant bien que mal de me mettre a la POO sur PHP et j'ai quelques difficultés...

Je fais un agenda en PHP et j'ai plusieurs "membres", des comptes quoi et donc j'ai une page de connexion ou on doit vérifier le pseudo et le mot de passe.

J'aimerais donc créer un "objet" ListeMembre qui est en fait un tableau regroupant tous les membres de ma BDD et ensuite vérifier dedans.

Seulement je pense pas que je m'y prenne correctement... voici ma classe Membres avec le constructeur et la fonction connexion, ça ne marche pas bien évidement

Class Membres{

private $listeMembres;

function __construct(){
$req="SELECT * FROM Membres";
$res=mysql_query($req);
$this->listeMembres=array();
$nb=0;
while($result=mysql_fetch_array($res)){
$this->listeMembres[$nb]=array('id'=>$result[0],'pseudo'=>$result[1],'MotDePasse'=>$result[2]);
}

}


public function connection($VotreLogin,$VotreMotDePasse){

$nb=0;
while($nb<=count($this->listeMembres))
{
if ($this->listeMembres['pseudo']==$VotreLogin AND $this->listeMembres['MotDePasse']==$VotreMotDePasse)
{
$ID = $this->listeMembres['id'];

}
else
{
$ID = NULL;

}
$nb++;
}

return $ID;
}
}


une idée ? merci

4 réponses

boz75 Messages postés 45 Date d'inscription vendredi 28 août 2009 Statut Membre Dernière intervention 27 septembre 2015 4
7 mars 2010 à 11:21
Tu n'aurais pas oublié un $nb++ dans le constructeur ?
0
alexcamb87 Messages postés 79 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 5 juin 2011
7 mars 2010 à 11:26
si en effet mais ça ne marche pas quand même
0
alexcamb87 Messages postés 79 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 5 juin 2011
7 mars 2010 à 12:32
j'ai essayé de me simplifier la tache en faisant un tableau pour chaque champ mais ça ne marche toujours pas... Je dois plus être très loin pourtant

Class Membres{

private $idMembres;
private $pseudoMembres;
private $mdpMembres;

function __construct(){
$req="SELECT * FROM Membres";
$res=mysql_query($req);
$nb=0;
while($result=mysql_fetch_assoc($res)){
$this->idMembres[$nb]=$result[0];
$this->pseudoMembres[$nb]=$result[1];
$this->mdpMembres[$nb]=$result[2];
$nb++;
}

}


public function connection($VotreLogin,$VotreMotDePasse){
$i=0;
$nbElements=count($this->idMembres);
while($i<=$nbElements)
{
if ($this->pseudoMembres[$i]==$VotreLogin AND $this->mdpMembres[$i]==$VotreMotDePasse)
{
$ID = $this->idMembres[$i];
}
else
{
$ID = NULL;
}
$i++;
}

return $ID;
}



}
0
boz75 Messages postés 45 Date d'inscription vendredi 28 août 2009 Statut Membre Dernière intervention 27 septembre 2015 4
7 mars 2010 à 13:41
Il faut sortir de la boucle une fois que $id n'est plus NULL. Là, si je lis bien, tu trouves un ID puis lors du passage suivant dans la boucle, il est remis à NULL.

Par ailleurs je te signale la boucle « foreach », qui est plus simple à utiliser que « while » puisque tu n'as pas besoin de connaître le nombre d'éléments, ni de faire « $i++ ».
0