8768 sujets

Développement web côté serveur, CMS

Bonjour,

Voila, j'ai une base de donnée contenant des membres d'une association et j'aimerait dans un premier temps afficher tous les membres (jusqu'ici pas de soucis). Puis ensuite, j'aimerai afficher seulement les membres non-étudiants et là, c'est le drame.


$bdd = new PDO('mysql:host=localhost;dbname=association;charst=utf8', 'root', ''); //on accède à la BDD
$requete=$bdd->query('SELECT * FROM liste_membre');//on sélectionne une table

echo 'Les membres de l'association sont : <br/>';
while($lecture=$requete->fetch()){
	echo $lecture['mem_nom'].' '.$lecture['mem_pre'].'<BR/>';
}
$requete->closeCursor();

echo 'Parmis eux, les suivants ne sont pas étudiants :<br/>';
while($lecture=$requete->fetch()){
        if($lecture['mem_sta'!=3]){
        	echo $lecture['mem_nom'].' '.$lecture['mem_pre'].'<BR/>';
        }
}
$requete->closeCursor();

Mon code refuse d'afficher les non-étudiants...

Après avoir cherché un peu, j'ai trouvé la solution suivante qui fonctionne :


$bdd = new PDO('mysql:host=localhost;dbname=association;charst=utf8', 'root', ''); //on accède à la BDD
$requete=$bdd->query('SELECT * FROM liste_membre');//on sélectionne une table
$requete_2=$bdd->query('SELECT * FROM liste_membre');

echo 'Les membres de l'association sont : <br/>';
while($lecture=$requete->fetch()){
	echo $lecture['mem_nom'].' '.$lecture['mem_pre'].'<BR/>';
}
$requete->closeCursor();

echo 'Parmis eux, les suivants ne sont pas étudiants :<br/>';
while($lecture_2=$requete_2->fetch()){
        if($lecture_2['mem_sta'!=3]){
        	echo $lecture_2['mem_nom'].' '.$lecture_2['mem_pre'].'<BR/>';
        }
}
$requete_2->closeCursor();


Mais je ne trouve pas cette solution très pertinente car si je dois afficher plus que 2 fois ma table ça risque d'être vite chiant...

Quelqu'un saurait-il m'aider ?

Merci d'avance =D
Modifié par Clift (24 Jan 2016 - 20:20)
Ta bdd est bonne ?

Tu fais la différence entre étudiants et non étudiants de qu'elle manière ?

Il faut faire une requête qui va te chercher dans ta BDD le champ non étudiant et une requête étudiant.

Pour cela il te faut un point de repère sur ta BDD comm E et NE.

Tu peux même additionner le total par type. Je débute en pdo mais en Mysql, c'est basique. Le principe est le même.
Modifié par Tintin75 (24 Jan 2016 - 18:09)
Oui ma BDD est correcte vu que j'arrive à afficher correctement une première fois.

Je fais la différence grâce au champ "mem_sta" qui représente le statut du membre. Le chiffre 3 est pour les étudiants (c'est lié à une autre table "statuts").

Qu'entends-tu par additionner ? Je débute un peu en php ^^'

Merci d'avance =D
Tu peux additionner le nombre d'étudiant et de non étudiant.

Tes infos, sont donc sur deux tables différentes ? Tu veux interroger la table 1 et la table 2, si j'ai bien compris. De tête ça s'appel requêtes multiples, j'en ai jamais fait, j'ai hésité un moment mais je préfère simple car lorsque l'on est pas pro, il faut pas viser trop haut.

Tu trouveras des membres sympas qui pourront t'aider je pense. Regarde sur google, du côté de requêtes multiples, si je ne dit pas de bêtise.

Bonne soirée.
ce que je ne comprend pas, c'est ceci

$requete=$bdd->query('SELECT * FROM liste_membre');//on sélectionne une table
$requete_2=$bdd->query('SELECT * FROM liste_membre');


Pourquoi tu fais deux fois la même chose ?