Formulation d'une requête mysql avec max & group by
Mysql 5.0.51a ( sur serveur debian lenny)
Je souhaite créer une requête mysql qui permet d'afficher les résultats dans un tableau html. Dans le tableau doivent s'afficher uniquement les dernières dates , les plus récentes, des visites des conseillers.
Pour créer mon programme de test je me suis fortement inspire par le programme php sur la page http://www.roseindia.net/sql/mysql-e...group-by.shtml
J'ai donc crée ma version du programme 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
| <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
$host = "localhost";
$user = "xxxx";
$password = "xxxx";
$database = "xxxxx";
$connection = mysql_connect($host,$user,$password)
or die("Could not connect: ".mysql_error());
mysql_select_db($database,$connection)
or die("Error in selecting the database:".mysql_error());
$sql="select id, code_bp_ag, conseiller_cp, max(date), conseiller_bp from animations group by code_bp_ag";
$sql_result=mysql_query($sql,$connection)
or exit("Sql Error".mysql_error());
$sql_num=mysql_num_rows($sql_result);
//table header
echo "<table bgcolor=\"#F5F5FF\" border=\"1\">"."\n";
echo "<tr>"."\n";
echo "<td><b>id</b></td>" ."\n";
echo "<td><b>code_bp_ag</b></td>" ."\n";
echo "<td><b>conseiller_cp</b></td>"."\n";
echo "<td><b>date_derniere_visite</b></td>"."\n";
echo "<td><b>conseiller_bp</b></td>"."\n";
echo "</tr>"."\n";
while($sql_row=mysql_fetch_array($sql_result))
{
$id=$sql_row["id"];
$code_bp_ag=$sql_row["code_bp_ag"];
$conseiller_cp=$sql_row["conseiller_cp"];
$date_derniere_visite=$sql_row["max(date)"];
$conseiller_bp=$sql_row["conseiller_bp"];
//display sql result data
echo "<tr>"."\n";
echo "<td>".$id."</td>"."\n";
echo "<td>".$code_bp_ag."</td>"."\n";
echo "<td>".$conseiller_cp."</td>"."\n";
echo "<td>".$date_derniere_visite."</td>"."\n";
echo "<td>".$conseiller_bp."</td>"."\n";
echo "</tr>"."\n";
}
echo "</table>"
?>
</body>
</html> |
voici les données pour le test de ma base de données:
Code:
1 2 3 4 5
|
id conseiller_cp date code_bp_ag conseiller_bp
1 Magali 2010-09-02 11:38:28 91 Dupont
2 Julie 2010-09-23 11:31:44 91 Dupont
3 Didier 2010-09-23 11:32:07 91 Dupont |
puis quand j'exécute le script php je reçois le résultat suivant:
Code:
1 2
| id code_bp_ag conseiller_cp date_derniere_visite conseiller_bp
1 91 Magali 2010-09-23 11:32:07 Dupont |
Hors ce ne pas le résultat que j'espère. Je m'attendait plutôt à ceci:
Code:
1 2
| id code_bp_ag conseiller_cp date_derniere_visite conseiller_bp
3 91 Didier 2010-09-23 11:32:07 Dupont |
Le groupement se fait par le code d'agence, code_bp_ag.
Le type de la date dans MySQL est du timestamp
Quelqu'un à une idée ou est l'erreur?
Merci d'avance pour votre aide. ;)
Ps: J'ai hésité de poster mon message ici ... mais bon je pense qu'il s'agit avant tout d'un problème MySQL ... et pas de php ... sauf erreur de ma part???