Bonjour,

J'ai un petit problème concernant une programmation PHP avec le SGBD MySQL.
J'aimerais savoir si quelqu'un aurait une solution.

Voilà, je veux que pour une ligne d'élèves je puisse voir grâce à des colonnes de dates, les notes obtenues.

Par exemple :

---------------------------------------------------------------------
Eleves / Dates 17/02/2017 18/02/2017 25/02/2017

Adrian 11 15 16
Albert 9 8 10
Jerome 10 10 10
Guillaumme 20 19 20
....
---------------------------------------------------------------------

J'ai créé une requête qui fonctionne bien :


---------------------------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
SELECT l.student, s.name, s.firstname,
 
GROUP_CONCAT(CASE when t.date='2017-02-17' then l.niveauG end) as '2017-02-17',
GROUP_CONCAT(CASE when t.date='2017-02-18' then l.niveauG end) as '2017-02-18'
 
FROM testline l, test t, student s
 
WHERE l.test=t.code AND l.student=s.code
 
GROUP BY l.student
---------------------------------------------------------------------

Mais les colonnes ne sont pas dynamiques, c'est à dire qu'elles n'apparaissent pas automatiquement à l'ajout d'un test.

Alors j'ai essayé cela :

---------------------------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
<?php
$sql=mysql_query("SELECT date from test ");
$sq2l=mysql_query("SELECT l.student, s.name, s.firstname".
 
while ($row = mysql_fetch_array($sql))
      {
	  $date = $row['date'];
	  echo ", GROUP_CONCAT(CASE when t.date='".$date."' then l.niveauG end) as '".$date."'";
	  }
 
." FROM testline l, test t, student s

WHERE l.test=t.code AND l.student=s.code

GROUP BY l.student");
 
 
echo' <table width="80%" border="2" align="center">';
 
 
      echo '<tr>
      <th>Elèves</th>
      <b>'.$date.'</b>
      </tr>'; 
 
	  while ($row2 = mysql_fetch_array($sql2))
          {
           echo '<tr> <td>'.$studentname.'&nbsp;'.$studentfirstname.'</td>';
 
		  }
 
?>
 </table>
---------------------------------------------------------------------

Mais rien à faire le While n'est pas accepté :

Parse error: syntax error, unexpected 'while' (T_WHILE) in C:\Program Files (x86)
\EasyPHP-DevServer-13.1VC9\data\localweb\School\gradecourse.php on line 266

Auriez-vous une meilleure idée ?

Merci
---