Requète PHP
Résolu
papyclic
Messages postés
451
Statut
Membre
-
papyclic Messages postés 451 Statut Membre -
papyclic Messages postés 451 Statut Membre -
Bonjour,
J'ai créé une requète afin d'afficher la liste des membres, bien sur mon problème c'est que rien ne s'affiche ça aurai été trop beau.
Pouvez-vous m'expliquer d'ou peux venir mon soucie s'ils vous plait.
Merci beaucoup de pouvoir m'aider un peu.
Voici ma class
ma page qui est censée afficher la liste des membres
J'ai créé une requète afin d'afficher la liste des membres, bien sur mon problème c'est que rien ne s'affiche ça aurai été trop beau.
Pouvez-vous m'expliquer d'ou peux venir mon soucie s'ils vous plait.
Merci beaucoup de pouvoir m'aider un peu.
Voici ma class
<?php
class Liste_membre_class {
private $nom;
private $prenom;
private $email;
private $fixe;
private $mobile;
private $bdd;
public function __construct($nom, $prenom, $email, $fixe, $mobile) {
$this->nom = $nom;
$this->prenom = $prenom;
$this->email = $email;
$this->fixe = $fixe;
$this->mobile = $mobile;
$this->bdd = bdd();
}
public static function ListeMembre() {
$sql = "SELECT * FROM tb_adherent ORDER BY nom, prenom ASC";
$requete = $this->bdd->prepare($sql);
$requete->execute();
$nombre_membre = ($requete->rowCount() > 0) ? $requete->rowCount() . ' Membres' : '0 membre';
echo '<ul>';
echo '<li style="margin-left:950px; background-color: #FFFFFF;">'.$nombre_membre.'</li>';
echo '</ul>';
while($donnees = $requete -> fetchObject('Liste_membre_class')) {
echo '<tr>';
echo '<td>'.$donnees->nom.'</td>';
echo '<td>'.$donnees->prenom.'</td>';
echo '<td>'.$donnees->email.'</td>';
$tel1 = $donnees->fixe; $tel1 = wordwrap ($tel1, 2, ' ', 1);
echo '<td>'.$tel1.'</td>';
$tel2 = $donnees->mobile; $tel2 = wordwrap ($tel2, 2, ' ', 1);
echo '<td>'.$tel2.'</td>';
echo '</tr>';
}
}
}
ma page qui est censée afficher la liste des membres
<br/>
<div id="ListeMembre">
<table cellpadding="0" cellspacing="1">
<tr>
<th width="15%">Nom</th>
<th width="15%">Prénom</th>
<th width="36%">Email</th>
<th width="17%">Téléphone Fixe</th>
<th width="17%">Téléphone Mobile</th>
</tr>
<?php
$Liste_membre = new Liste_membre_class($nom, $prenom, $email, $fixe, $mobile);
$Liste_membre->ListeMembre();
?>
</table>
</div>
9 réponses
-
Bonjour
Ca y est voilà ce que j'ai fait et ça fonctionne<?php class Liste_membre_class { private $nom; private $prenom; private $email; private $fixe; private $mobile; private $bdd; public function __construct() { $this->nom = isset($_POST['nom']) ? Security::clean($_POST['nom']) : ''; $this->prenom = isset($_POST['prenom']) ? Security::clean($_POST['prenom']) : ''; $this->email = isset($_POST['email']) ? Security::clean($_POST['email']) : ''; $this->fixe = isset($_POST['fixe']) ? Security::clean($_POST['fixe']) : ''; $this->mobile = isset($_POST['mobile']) ? Security::clean($_POST['mobile']) : ''; $this->bdd = bdd(); }
Merci à vous tous.
Cordialement-
mince j'ai oublié l'autre methode
public function ListeMembre() { $sql = "SELECT * FROM tb_adherent ORDER BY nom, prenom ASC"; $requete = $this->bdd->prepare($sql); $requete->execute(); $nombre_membre = ($requete->rowCount() > 0) ? $requete->rowCount() . ' Membres' : '0 membre'; echo '<ul>'; echo '<li style="margin-left:950px; background-color: #FFFFFF;">'.$nombre_membre.'</li>'; echo '</ul>'; while($donnees = $requete->fetchObject()) { echo '<tr>'; echo '<td>'.$donnees->nom.'</td>'; echo '<td>'.$donnees->prenom.'</td>'; echo '<td>'.$donnees->email.'</td>'; $tel1 = $donnees->fixe; $tel1 = wordwrap ($tel1, 2, ' ', 1); echo '<td>'.$tel1.'</td>'; $tel2 = $donnees->mobile; $tel2 = wordwrap ($tel2, 2, ' ', 1); echo '<td>'.$tel2.'</td>'; echo '</tr>'; } }
-
-
Bonjour
La prochaine fois, donne le message d'erreur complet, en particulier le numéro de ligne qui permet de savoir où se trouve l'erreur.
Tu as utilisé $this dans une méthode statique, ce qui est interdit. En effet, $this désigne l'instance d'objet courante, et le mot-clé static signifie justement qu'une méthode peut être appelée sans qu'aucun objet ne soit instancié : c'est une méthode de la classe, pas des objets de cette classe.
Voir la doc : https://www.php.net/manual/fr/language.oop5.static.php
En fait, c'est ta méthode ListeMembre qui n'a pas de raison d'être statique. -
Bonjour
Mon erreur est...
Fatal error: Using $this when not in object context in C
Je crois comprendre que j'utilise $this en dehors d'un objet ??
Je n'arrive vraiment pas à résoudre mon soucis.
Ayez pitié d'un débutant
Merci vraiment de votre aide. -
Bonjour
Si quelqu'un pourrait m'aider s'ils vous plait, je suis bloqué et j'aimerai bien comprendre.
Je vous remercie -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour
Je te remercie "le Père".
Maintenant j'ai cette erreur tu peux m'expliquer se que cela signifie s'il te plait.
Je te remercieWarning: Missing argument 1 for Liste_membre_class::__construct() in
l'erreur se situe ligne 11class Liste_membre_class { private $nom; private $prenom; private $email; private $fixe; private $mobile; private $bdd; public function __construct($nom, $prenom, $email, $fixe, $mobile) { $this->nom = $nom; $this->prenom = $prenom; $this->email = $email; $this->fixe = $fixe; $this->mobile = $mobile; $this->bdd = bdd(); } -
Bonsoir,
En effet, il te manque la variable bdd en argument de ta fonction construct. -
En fait j'ai bien mis un sixième argument "$bdd" mais ça ne change rien.
je te renvoie mes 2 fichiers si tu as un peu de temps à me consacré.
Merci<?php class Liste_membre_class { private $nom; private $prenom; private $email; private $fixe; private $mobile; private $bdd; public function __construct($nom, $prenom, $email, $fixe, $mobile) { $this->nom = $nom; $this->prenom = $prenom; $this->email = $email; $this->fixe = $fixe; $this->mobile = $mobile; $this->bdd = bdd(); } public function ListeMembre() { $sql = "SELECT * FROM tb_adherent ORDER BY nom, prenom ASC"; $requete = $this->bdd->prepare($sql); $requete->execute(); $nombre_membre = ($requete->rowCount() > 0) ? $requete->rowCount() . ' Membres' : '0 membre'; echo '<ul>'; echo '<li style="margin-left:950px; background-color: #FFFFFF;">'.$nombre_membre.'</li>'; echo '</ul>'; while($donnees = $requete->fetchObject('Liste_membre_class')) { echo '<tr>'; echo '<td>'.$donnees->nom.'</td>'; echo '<td>'.$donnees->prenom.'</td>'; echo '<td>'.$donnees->email.'</td>'; $tel1 = $donnees->fixe; $tel1 = wordwrap ($tel1, 2, ' ', 1); echo '<td>'.$tel1.'</td>'; $tel2 = $donnees->mobile; $tel2 = wordwrap ($tel2, 2, ' ', 1); echo '<td>'.$tel2.'</td>'; echo '</tr>'; } } }<br/> <?php $nom = isset($_POST['nom']) ? Security::clean($_POST['nom']) : ''; $prenom = isset($_POST['prenom']) ? Security::clean($_POST['prenom']) : ''; $email = isset($_POST['email']) ? Security::clean($_POST['email']) : ''; $fixe = isset($_POST['fixe']) ? Security::clean($_POST['fixe']) : ''; $mobile = isset($_POST['mobile']) ? Security::clean($_POST['mobile']) : ''; ?> <div id="ListeMembre"> <table cellpadding="0" cellspacing="1"> <tr> <th width="15%">Nom</th> <th width="15%">Prénom</th> <th width="36%">Email</th> <th width="17%">Téléphone Fixe</th> <th width="17%">Téléphone Mobile</th> </tr> <?php $Liste_membre = new Liste_membre_class($nom, $prenom, $email, $fixe, $mobile, $bdd); $Liste_membre->ListeMembre(); ?> </table> </div>
En fait ça me retourne 1 erreur pas argument comme il y en a 5 ça fait 5 erreur mais bon c'est la même en faitWarning: Missing argument 1 for Liste_membre_class::__construct() in C
-
public function __construct($nom, $prenom, $email, $fixe, $mobile)
Ce n'est pas plutôt ceci ?
public function __construct($nom, $prenom, $email, $fixe, $mobile, $bdd) { -
Non en fait j'avais essayé déjà
Alors ce que j'ai fait j'ai supprimé les 5 argument et je n'ai plus d'erreur mais par contre ça m'affiche le nombre de membre mais pas la liste des membres.
Merci