Remplir un tableau de tableau avec mysql ?

Eléphanteau du PHP | 22 Messages

23 juin 2005, 09:09

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]
Modifié en dernier par SpaceCowboy le 23 juin 2005, 12:10, modifié 1 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 juin 2005, 11:24

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

Eléphanteau du PHP | 22 Messages

23 juin 2005, 12:09

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.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 juin 2005, 12:14

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

Eléphanteau du PHP | 22 Messages

23 juin 2005, 12:48

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