Bonjour,

Je souhaite récupérer mes données issues d'une BDD et les afficher dans un tableau HTML. Le problème c'est que mon tableau doit afficher les données en rowspan plus tard.

Pour l'instant je faisait tout le traitement sur une seule page :

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
 
$nligne = 0;
$rowspan[0]=NULL;//Déclaration de rowspan pour ne pas avoir les notices
 
$reponse = $bdd->prepare("SELECT * FROM cars ORDER BY Marque"); //On classe les résultats en fonction de la marque pour faciliter leur exploitation dans les boucles
$reponse->execute();                        
 
while($donnees = $reponse->fetch())
{             
	//Test pour voir si c'est une nouvelle marque
	if($rowspan[0][0] == $donnees[0])//C'est la même marque que la ligne précédente
	{             
		array_push($rowspan,$donnees);//On met la nouvelle ligne à la fin du tableau
	}
	else//Si c'est une nouvelle marque
	{
		Insertion_tableau($rowspan,$nligne);
		$nligne ++;
		$rowspan = array($donnees); //On écrase data avec les données d'une nouvelle disso
	}
}
Insertion_tableau($rowspan,$nligne); //On fait une insertion aprés la boucle pour la dérniére marque du tableau
for($i=1 ; $i<=$NbPage ; $i++)
{
	echo " <a href=\"testmysql.php?p=$i\">$i</a> /";
}             
 
//*******************************************************************************************************************
//Création tableau HTML
function Insertion_tableau(&$rowspan, &$nligne)
{
	if($rowspan[0] != NULL)//Condition pour la 1ere ligne (sinon rajoute ligne vide au début du tableau à cause de ma condition au 1er tour de boucle au dessus)
	{                                                            
		$height = count($rowspan); //On prend le nombre d'enregistrements dans data(qui representent le nb de voiture d'une même marque) pour calculer le rowspan
		if($height==1) // Si il y a une seule ligne
		{
			echo '<tr class="ligne_'.$nligne.'"> <td class="col_marque">'.$rowspan[0][0].'</td> <td>'.$rowspan[0][1].'</td> <td>'.$rowspan[0][2].'</td> <td>'.$rowspan[0][3].'</td> </tr>'; //On ne met pas de rowspan s'il ya une seule ligne  
		}
		else //Si il y a plusieurs ligne
		{
			echo '<tr class="ligne_'.$nligne.'"> <td class="col_marque" rowspan="'.$height.'">'.$rowspan[0][0].'</td> <td rowspan="'.$height.'">'.$rowspan[0][1].'</td> <td>'.$rowspan[0][2].'</td> <td>'.$data[0][3].'</td> </tr>'; //On place le rowpsan sur la 1ere ligne
 
			for($i=1 ; $i<$height ; $i++) // On commence à 1 car la 1ere ligne a déjà été placé
			{
				echo '<tr class="ligne_'.$nligne.'"> <td>'.$rowspan[$i][2].'</td> <td>'.$rowspan[$i][3].'</td> </tr>';
			}
		}
	}             
}
Maintenant je souhaiterais passer à un modèle MVC, il faudrait donc que j'envoie à mon controlleur, le tableau des données que j'ai récupéré avec mon modéle.
C'est la que ma question se pose:

Faudrait-il mieux envoyer un tableau simple et faire le traitement pour l'affichage en JS? Ou lors de la réception de la requête, je les place dans un tableau multidimensions comme j'ai fait jusqu'ici, sauf qu'au lieu de faire l'affichage à chaque changement de rowspan, je le met dans un array qui aura deja l'architecture de mon tableau HTML? Ou alors peut-être il y a-t-il une meilleurs solutions que celles la?

Voila si quelqu'un sait éventuellement quelle technique est la plus "correct" OU si il y en a une autre bien entendu.

Merci.