Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & ODBC
PHP & ODBC Forum d'entraide sur ODBC avec PHP. Avant de poster -> FAQ ODBC
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 16/04/2007, 09h22   #1
Invité régulier
 
Inscription : mars 2007
Messages : 28
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2007
Messages : 28
Points : 8
Points : 8
Par défaut Liste déroulante à partir des données d'Access

Bonjour,

J'arrive à récupérer des données de ma base Access (ici les pointages des salariés : années, semaine, jours, description,....).
Mais il y a bcp de données et j'aimerai pouvoir les filtrer grâce à une liste déroulante (ici années).
J'arrive à afficher ma liste déroulante ainsi que les années, mais j'obtiens:
2007
2007
2007
2007
2006
2006
2006
...

au lieu de:
2007
2006

Les années ne se regroupent pas

Voici mon code:

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
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Pointages</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
 
        <h2>Bonjour</h2>
 
        <p>
 
		<?php
			// Connexion à la base de données
			$con = odbc_connect("GestecProProgrammation", "", "");
			$NomSalarie = $_GET['NomSalarie'];	
			$query = "select * FROM T_Pointage WHERE Collaborateur='$NomSalarie' ORDER BY annee desc, semaine desc";  
			$result = odbc_do ($con,$query); 
		?>  
			 <br>
		<?php			
			$ld = "<SELECT NAME='Annee'>";
			$ld .= "<OPTION VALUE=0>Tous</OPTION>";
 
			while ( $row = odbc_fetch_array( $result)) { // $row est un tableau associatif, les éléments sont «indicés» par les noms des colonnes
			    $Annee = $row["Annee"];
			    $Semaine = $row["Semaine"];
			    $ld .= "<OPTION VALUE='$Semaine'>$Annee</OPTION>";
			}
			$ld .= "</SELECT>";
 
			print $ld; //Affichage de la liste déroulante
 
			odbc_close( $con); // Déconnexion de la bdd
		?>			
 
		</p>
    </body>
</html>
Merci,
Elise.
Aillyzeux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 09h32   #2
Membre actif
 
Avatar de Azazel.fr
 
Inscription : mars 2007
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 170
Points : 177
Points : 177
pour regrouper les années, il te faut un "group by annee" dans ta requete.
ceci, il y a quelque chose que je ne comprend pas : tu affiches des années dans ta liste déroulante, mais tu mets des semaines en value ?
__________________
http://www.bordeauxstunt.com
Azazel.fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 09h39   #3
Invité régulier
 
Inscription : mars 2007
Messages : 28
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2007
Messages : 28
Points : 8
Points : 8
En fait, je débute en PHP et j'ai adapté un bout de code que j'ai trouvé sur internet.

Sinon, je vais essayé le "group by annee"

Merci,
Elise.
Aillyzeux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 09h57   #4
Invité régulier
 
Inscription : mars 2007
Messages : 28
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mars 2007
Messages : 28
Points : 8
Points : 8
J'ai supprimé les semaines en values.
Par contre, je n'arrive pas à mettre en place le "group by annee", si tu pouvais m'indiquer où et comment le placer, ça serait super sympa.

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
 
		<?php
			// Connexion à la base de données
			$con = odbc_connect("GestecProProgrammation", "", "");
			$NomSalarie = $_GET['NomSalarie'];	
			$query = "select * FROM T_Pointage WHERE Collaborateur='$NomSalarie' ORDER BY annee desc, semaine desc";  
			$result = odbc_do ($con,$query); 
		?>  
			 <br>
		<?php			
			$ld = "<SELECT NAME='Annee'>";
			$ld .= "<OPTION VALUE=0>Tous</OPTION>";
 
			while ( $row = odbc_fetch_array( $result)) 
			{ // $row est un tableau associatif, les éléments sont «indicés» par les noms des colonnes
			    $Annee = $row["Annee"];
			    $ld .= "<OPTION VALUE=>$Annee</OPTION>";
			}
			$ld .= "</SELECT>";
 
			print $ld; //Affichage de la liste déroulante
 
			odbc_close( $con); // Déconnexion de la bdd
		?>
Merci,
Elise.
Aillyzeux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 12h18   #5
Membre actif
 
Avatar de Azazel.fr
 
Inscription : mars 2007
Messages : 170
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 170
Points : 177
Points : 177
select annee from table group by annee
__________________
http://www.bordeauxstunt.com
Azazel.fr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2007, 13h38   #6
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
Code sql :
1
2
SELECT DISTINCT annee
FROM TABLE

c'est bien aussi ...
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick 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 02h44.


 
 
 
 
Partenaires

Hébergement Web