Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/07/2011, 12h18   #1
Invité de passage
 
Inscription : mars 2011
Messages : 60
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 60
Points : 1
Points : 1
Par défaut Filtrage des données

Bonjour,
J'ai un problème dans mes requetes.En effet,je veux créer un filtre qui consiste
à faire des recherches comme suit:
*Age du patient (2 champs pour mettre une fourchette d’âge : ex les patient de 50 à 60) pas de restriction si non saisie.
*Sexe (M ou F ou les deux ou aucunes restrictions).
*Décédé (oui / non ou aucunes restrictions).
J'ai créé un mon formulaire dans le fichier filtreSuccess.php comment suit:
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
 
        <table>
            <thead>
                <tr>
            <form method="POST" action ="<?php echo url_for('prostate_recap/filtre')?>">
                    <th>Age
                     <select  name="age">
                            <option value="0">  </option>
                            <option value="10">0-10 </option>
                            <option value="20">10-20</option>
                            <option value="30">20-30</option>
                            <option value="40">30-40</option>
                        </select>
                    </th>
                    <th>Sexe
                        <select  name="sexe">
                            <option value="0"> </option>
                            <option value="1">M</option>
                            <option value="2">F</option>
                        </select>
                    </th>
                    <th>décedé
                    <select  name="decede">
                            <option value="0"> </option>
                            <option value="1">oui</option>
                            <option value="2">non</option></select></th>
                   <input type="submit" value="filtrer">
            </form>
 
                </tr>
            </thead>
            <tbody>
            <?php foreach ($test as $d): ?>
               <tr>
                    <td><?php echo $d->getName() ; ?></td>
               </tr>
            <?php endforeach; ?>
        </tbody>
    </table>
</div>
Mon action executeFiltre est la suivante:
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
 
 
public function executeFiltre(sfWebRequest $request)
	{
    if($request->getParameter('sexe') != 0)
    {
 
$this->test = Doctrine::getTable('Patient')
		->createQuery('a')
                ->where('a.sex_id =?',$request->getParameter('sexe'))
		->execute();
    }
    else
    {
 
        $this->test = Doctrine::getTable('Patient')
		->createQuery('a')
                ->where('a.sex_id =?',$request->getParameter('sexe'))
		->execute();
    }
 
 
 
    //filtre pour l'age de patient
 if($request->getParameter('age') != 0)
   {
  $this->test=array();
$pa = Doctrine::getTable('Patient')
		->createQuery('a')
 
		->execute();
foreach ($pa as $v) {
    $z=explode('-',$v->getDateOfBirth());
   $zd=explode('-',date('d-m-Y'));
    $dif=$zd['2'] + 2 ;
 
}
    }
   else
    {
 
        $this->test = Doctrine::getTable('Patient')
		->createQuery('a')
                ->execute();
    }
 
//filtre pour le Décédé (oui / non ou aucunes restrictions)
 if($request->getParameter('decede') != 0)
    {
 
$this->test = Doctrine::getTable('Patient')
		->createQuery('b')
                ->where('b.date_of_death =?',$request->getParameter('decede'))
		->execute();
    }
    else
    {
 
        $this->test = Doctrine::getTable('Patient')
		->createQuery('b')
                ->where('b.date_of_death =?',$request->getParameter('decede'))
		->execute();
    }
Je ne sais pas pourquoi les filtres ne fonctionnent pas.Pourriez vous m'aider pour qu'il fonctionneront.
farhaenis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 11h23   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
As-tu remarqué la présence d'un dossier filter dans le dossier lib ?

Symfony embarque un système de filter proche du form, qui permet de générer et valider les saisies de filtres et de générer les query qui vont avec. Si ta base est correctement conçues tu ne devrais pas avoir de problèmes à utiliser ce système.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h31.


 
 
 
 
Partenaires

Hébergement Web