Dans ton listeMail.php au tout début :
Et regarde ce qu'il retourneCode:echo ($var);
Version imprimable
Dans ton listeMail.php au tout début :
Et regarde ce qu'il retourneCode:echo ($var);
Alors j'ai fais comme tu m'a dis listeMail.php
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 <!DOCTYPE html> <html > <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <?php // définition des includes include("Include/coBdd.php") ; include ('Include/menu.php'); //definition des managers $managerMail = new MailManager($pdo) ; if (isset($_POST["rechercherMail"])) { $numDos = $_POST['numDossRech'] ; $a = $managerMail->rechercherMail($numDos) ; //var_dump($numDos) ; var_dump($a) ; } ?> </head> <body> <h1> Liste des mails </h1> <table class="table table-striped"> <thead> <tr> <th>Date</th> <th>Numéro Dossier</th> <th>Catégorie</th> <th>Sujet</th> <th></th> </tr> </thead> <tbody> <?php $lesMail = $managerMail->getListRecherche($numDos) ; var_dump($lesMail); foreach ($lesMail as $unMail) { ?> <tr> <th> <?php echo $unMail->getDate() ; ?> </th> <th> <?php echo $unMail->getNumDossier() ; ?> </th> <th> <?php echo $unMail->getCat(); ?> </th> <th> <?php echo $unMail->getSujet() ; ?> </th> <th> <?php echo '<a href=consulterMail.php?id='.$unMail->getId().'> '?> Consulter </a> </th> </tr> <?php } ?> </body> </html>
et dans MailManager.php
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public function getListRecherche($var) { $mails = []; $q = $this->db->prepare("SELECT * FROM mail order by mai_date desc where num_dossier like ".$var); $q->execute(); while ($donnees = $q->fetch(PDO::FETCH_ASSOC)) { $mails[] = new Mail($donnees['mai_id'], $donnees['mai_sujet'],$donnees['mai_adresseMailDest'], $donnees['mai_numDossier'], $donnees['mai_corpMess'], $donnees['mai_categorie'],$donnees['mai_personne'],$donnees['mai_date']); } } }
Et j'ai toujours les messages de toute a l'heure qui correspond à
EtCode:
1
2 $q = $this->db->prepare("SELECT * FROM mail order by mai_date desc where num_dossier like ".$var); $q->execute();
Mais comme mon objet lesMail est null il peu pas faire de foreach ?Code:foreach ($lesMail as $unMail)
Bin oui, normal, ça fait 3 fois que je te dis que la syntaxe de
n'est pas bonne :mrgreen:Code:
1
2 $q = $this->db->prepare("SELECT * FROM mail order by mai_date desc where num_dossier like ".$var); $q->execute();
Change en
Tu peux relink les erreurs avec les lignes associées?Code:
1
2 $q = $this->db->prepare("SELECT * FROM mail order by mai_date desc where num_dossier like '".$var."'"); $q->execute();
Affiche également ton résultat avant ton return pour savoir ce que tu retournes
EDIT : Tu ne retournes rien... ;)
Citation:
Dans ton listeMail.php au tout début :
Code :
echo ($var);
Ça m'a bien retourné ce que j'ai tapé dans la barre de recherche
Ben en changeant la syntaxe ça change rien du tout ...
Retourne quelque chose déjà. Comment veux-tu que ton objet soit différent de null si tu ne retournes rien?
En effet c'est déjà un bon point :mouarf:Citation:
etourne quelque chose déjà. Comment veux-tu que ton objet soit différent de null si tu ne retournes rien?
Bon par contre il est plus a null mais vide ...
Et j'ai un message d'erreur en moins , il me reste seulement
qui correspond à ce qui est souligné en rougeCitation:
Warning: PDOStatement::execute(): in MailManager.php on line 140
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 public function getListRecherche($var) { echo ($var); $mails = []; $q = $this->db->prepare("SELECT * FROM mail order by mai_date desc where num_dossier like '".$var."'"); $q->execute(); while ($donnees = $q->fetch(PDO::FETCH_ASSOC)) { $mails[] = new Mail($donnees['mai_id'], $donnees['mai_sujet'],$donnees['mai_adresseMailDest'], $donnees['mai_numDossier'], $donnees['mai_corpMess'], $donnees['mai_categorie'],$donnees['mai_personne'],$donnees['mai_date']); } return $mails ; }
J'ai pas fais attention mais remplace ta requête par :
Code:SELECT * FROM mail where num_dossier like '".$var."' order by mai_date desc
ok je vais essayer =)
Petit soucis avec les ' '
Je fais bien comme ça ??
Code:$q = $this->db->prepare('SELECT * FROM mail where num_dossier like '".$var." 'order by mai_date desc' );
ça m'a l'air pas mal à quelque chose près :
Copie et remplace
Code:$q = $this->db->prepare("SELECT * FROM mail where num_dossier like '".$var."' order by mai_date desc");
J'ai fais ça et ça fonctionne
.Code:$q = $this->db->prepare('SELECT * FROM mail where mai_numDossier like "'.$var.'" order by mai_date desc ' );
Franchement merci beaucoup ça fais 2 jours que j'étais dessus je commençais a en avoir marre ^^ :lol:
Bizarre que ça marche comme ça, à moins que j'ai inversé les quotes dans ma tête.. ^^
N'hésite pas à :plusser::plusser: les messages qui t'ont aidé et à passer le sujet en :resolu: :)
A une prochaine !
Oui c'est vrai que c'est bizarre =)
Bonne journée a bientôt