Page 1 sur 1

Remplir un tableau de tableau avec mysql ?

Posté : 23 juin 2005, 09:09
par SpaceCowboy
Petit probleme, je doit remplir un tableau de ce type, pour un affichage dans un document PDF avec la librairie EzPDF.*
$data = array(
	array(1,'gandalf','wizard'), 
	array(2,'bilbo','hobbit'), 
	array(3,'frodo','hobbit'), 
	array(4,'saruman','bad dude'),
	array(5,'sauron','really bad dude'));

avec mysql donc :

while ($row = mysql_fetch_row($res))
{
   
    for ($j = 0; $j < count($row); $j++)
	{
        echo ($row[$j] == NULL) ? '<i>aucun</i>' : $row[$j];
         }

}
Sa doit ressembler à quelque chose dans ce genre :
while ($row = mysql_fetch_row($res))
{
	$data = array(
	array('Code','Nom','Type','Adresse'), 
	array(
		for ($j = 0; $j < count($row); $j++)
		{
			echo ($row[$j] == NULL) ? 'aucun' : $row[$j];
			, ;
		}
	);
}
A chaque colonne, il faut mettre la chaine dans le tableau, ensuite une virgule. A la fin de chaque ligne du tableau de résultat on ferme par une parenthèse puis une virgule et on recommence pour chaque ligne ... mais la j'ai franchement aucne idée de la facon de faire .[/php]

Posté : 23 juin 2005, 11:24
par ouckileou
A chaque colonne, il faut mettre la chaine dans le tableau, ensuite une virgule. A la fin de chaque ligne du tableau de résultat on ferme par une parenthèse puis une virgule et on recommence pour chaque ligne ... mais la j'ai franchement aucne idée de la facon de faire .

Je ne vois pas trop où est le problème, tu es sur la voie
pour chaque ligne de résultat tu insers dans un tableau, tu rajoutes ta virgule dans chaque cellule si tu veux
puis après avoir traité chaque champ de ta ligne, tu rajoutes la parenthèse et tout
et tu insers ton premier tableau dans un plus grand

et voilà

récupères tes résultats avec mysql_fetch_array, ce sera plus facile tu pourras accéder aux valeurs en utilisant une clé de tableau, pas besoin de boucler

Posté : 23 juin 2005, 12:09
par SpaceCowboy
Ok, sa doit pas être loin :
$data = array(

while($dataBD = mysql_fetch_array($req))
{
	array($dataBD['Code_Mat'],$dataBD['Nom_Mat'],$dataBD['Type_Mat'],$dataBD['Code_Cont']), 
}
);
Sa marche pas forcement, car une boucle dans un tableau ...
Comment on fait pour insérer un tableau dans un tableau ? je pensais pas que c'état possible.

Posté : 23 juin 2005, 12:14
par ouckileou
oui c'est là que tu t'embrouilles

tu ne mets pas la boucle dans ton tableau, effectivement ça ne fonctionnera pas

un tableau c'est une variable comme un autre, tu la mets où tu veux

donc tu crées ton premier tableau (le "général")

puis tu boucles, tu crées un petit sous-tableau à chaque fois

et tu l'insères dans une nouvelle cellule du tableau général

pour insérer un tableau dans un autre donc c'est comme avec n'importe quoi
$petitSousTableau = Array();
$tableauGeneral[] = $petitSousTableau;
mettre un tableau dans une cellule d'un autre ça fait juste un tableau à plusieurs dimensions

Posté : 23 juin 2005, 12:48
par SpaceCowboy
Sa marche !
$requete = $_SESSION['requeteEdition'];
$req = mysql_query($requete);
while($dataBD = mysql_fetch_array($req))
{	$petitSousTableau=array($dataBD['Code_Mat'],$dataBD['Nom_Mat'],$dataBD['type_Mat'],$dataBD['Code_Cont']);
	$tableauGeneral[] = $petitSousTableau;
}

J'ai plus qu'a mettre en forme le résultat ! thx