Génération tableau PHP

Fermé
barakobama95 Messages postés 45 Date d'inscription jeudi 24 juin 2010 Statut Membre Dernière intervention 29 juillet 2015 - 27 août 2013 à 09:44
barakobama95 Messages postés 45 Date d'inscription jeudi 24 juin 2010 Statut Membre Dernière intervention 29 juillet 2015 - 29 août 2013 à 13:13
Bonjour j'ai une consigne à suivre là voilà:

Liste de produits purs avec logo
a) Créer une liste de produits purs (Jus d'orange, Vin rouge, Champagne, Bière blonde, Vodka, Whisky, etc...)
b) Pour chaque produit, trouver quelques fabricants qui font un produit pur, avec un logo ou une étiquette reconnaissable les quantités de vente (exemple canette 50cl, bouteille 75cl) et la teneur en alcool (exemple 4.5%)
c) Stocker toutes ces données dans un tableau de tableaux php
d) Afficher les données dans un tableau HTML comme ci-dessous :https://mail.rpn.ch/owa/auth/logon.aspx?url=https%3a%2f%2fmail.rpn.ch%2fowa%2fattachment.ashx%23id%3dRgAAAADEpBwsWnLRSo%252bb2tYpGz62BwCvR4ZiRwM3QrFcyVZRie98AAABw4aTAABvfQZNjIuFSYZJq43dNM81AAAAAZjXAAAJ%26attcnt%3d1%26attid0%3dBAAAAAAA%26attcid0%3dimage001.jpg%254001CEA281.86523B20&reason=0

Remarquez la fusion de cellule pour regrouper les produits de même catégorie en colonne 1.
Note : il ne s'agit pas d'un tableau en dur, mais d'un tableau généré par boucle PHP en lisant le tableau de tableaux php créé au point précédent.

Voilà la consigne .

et moi j'en suis là :
<?php
$tableau=array("Produit","Producteur/marque","Nom de produit","%alcool","Quantité de vente","logo");
//$tableau[]="Bière blonde", "Feldschlösschen lager original","4.8%","Bouteille 25cl");


$longueur = count ($tableau);
$pc= 100/$longueur;
echo "<table border=\"1\" width=\"100%\">\n<tr>\n";
for($cpt=0;$cpt<count($tableau);$cpt++)
{
echo "<td width=\"$pc%\">$tableau[$cpt]</td>\n";

}

echo "</tr>\n</table>\n";
echo "<tr> <?phecho $tableau[0]; </tr>"



?>

Avec ce code j'arrive déjà à faire la première ligne du tableau les titre quoi, mais après ma question est comment faire pour tout simplement ajouter une ligne en dessous que je puisse remplir mon tableau ?? j'ai cherché à pas mal de place mais sa n'a rien donné =/
Je ne suis pas très doué en php en plus de cela je rame pas mal .

Merci de votre aide bonne journée
A voir également:

1 réponse

Utilisateur anonyme
27 août 2013 à 10:43
salut,

c'est plutot du côté des tableaux html qu'il faut que tu te tournes :

https://www.commentcamarche.net/contents/504-tableau-html-table

ensuite concernant le corp / en-tête du tableau (les données), ton tableau '$tableau' doit être à plusieurs dimensions. Par exemple tu aurai :
$tableau[0] = array("Produit","Producteur/marque","Nom de produit","%alcool","Quantité de vente","logo"); 
$tableau[1]=array("Bière blonde", "Feldschlösschen lager original","4.8%","Bouteille 25cl"); 

etc.



et pour l'affichage :

<?php 
	echo "<table border=\"1\" width=\"100%\">\n"; 
	//--en-tête
		echo "<tr>\n";
	for($cpt=0;$cpt<count($tableau[0]);$cpt++) 
	{ 
		echo "<td width=\"$pc%\">".$tableau[0][$cpt]."</td>\n"; 
	} 
	echo "</tr>\n"; 
	//--le corp
	for($cpt=1;$cpt<count($tableau);$cpt++) 
	{ 
		echo "<tr>\n";
		for($cpt2=0;$cpt<count($tableau);$cpt++) 
		{
			echo "<td width=\"$pc%\">".$tableau[$cpt][$cpt2]."</td>\n";
		}
		echo "</tr>\n"; 

	}

	echo "</table>\n"; 

?>



c'est un exemple, la manière de faire n'est pas "figé", il en existe une multitude.

naga
0
barakobama95 Messages postés 45 Date d'inscription jeudi 24 juin 2010 Statut Membre Dernière intervention 29 juillet 2015
27 août 2013 à 11:21
Pour commencer merci de ton aide !
J'ai essayer ton code il y avait deux erreur dedans des "pc" qui ne servais à rien.
Et après ça quand je lance le code dans un explorateur j'ai bien le haut de mon tableau avec les titres mais en dessous la première ligne il y a seulement la première cellule qui si créer et c'est tout .
Je suis vraiment un navet et je comprends pas trop pourquoi, j'essayes de comprendre ton code.

Mais si tu pouvais m'éclairer ? ça serait chouette
Merci
0
dans le code que je t'ai donné, il n'y a que l'en-tête et la première ligne qui sont renseignées :
$tableau[0] = array("Produit","Producteur/marque","Nom de produit","%alcool","Quantité de vente","logo"); 
$tableau[1]=array("Bière blonde", "Feldschlösschen lager original","4.8%","Bouteille 25cl"); 


donc pour chaque nouvelle ligne, tu le refais ^^ :

$tableau[X] = array (... )

X étant un indice de ligne, et dans array tu donnes tes informations de la même manière qu'au dessus.

Par contre j'ai un doute sur la provenance, d'après ton énoncé il y a une "source", et d'après le code que tu as fournis, je ne vois pas d'où provient cette source. (une base de données? un fichier ? etc. )

et concernant les pc, j'avais pas fais gaffe, mais tu dois écrire :
$longueur = count ($tableau[0]); 
$pc= 100/$longueur; 

...

echo "<td width=\"'.$pc.'\">"

histoire que ta mise en forme soit utile ^^


PS : la seconde partie, celle qui contient les boucles, te permets d'afficher un array(array()), la première ligne étant l'en-tête. J'ai préféré dissocier l'affichage de l'en-tête à celui du corp pour la compréhension, mais ce n'était pas utile ^^
0
barakobama95 Messages postés 45 Date d'inscription jeudi 24 juin 2010 Statut Membre Dernière intervention 29 juillet 2015
27 août 2013 à 11:51
Okey merci, pour ce qui concerne le code que j'ai donnée au début c'était un test que j'avais fait mais vraiment à l'arrache en me basant sur d'autre exercice mais c'était "bidon".

Comme tu le dis pour la source si moi même j'ai bien compris , je dois remplir un tableau PHP avec les données de différentes boissons et par la suite une boucle génère un autre tableau HTML avec les données du tableau PHP créée juste avant.

Je sais pas si tu comprends ? X) ^^'
Mais en tout cas merci déjà pour l'éclaircissement
0
Utilisateur anonyme
27 août 2013 à 12:02
je crois que j'ai compris, et oui ca serai ca.
Ce qu'il faut pense c'est que :
le premier indice du $tableau représente une ligne, et le second la colonne. Donc
$tableau[2] => 3ème ligne du tableau (on commence par 0)
tableau[2][1] => 2 ème colonne de la 3ème ligne du tableau: représente une cellule


il faut simplement bien le prendre en compte pour générer ton tableau, mais sinon il n'y a rien de particulier à faire =)
0
barakobama95 Messages postés 45 Date d'inscription jeudi 24 juin 2010 Statut Membre Dernière intervention 29 juillet 2015
27 août 2013 à 12:03
Après remise en forme le code à cette allure ?
<?php
// CIFOM-Ecole Technique, salle 226, enseignant: A. Jeanmaire
// Auteur: Moser, date, but du script
// Partie "métier" ici
session_start();
error_reporting(E_ALL);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<?php
$tableau[0]=array("Produit","Producteur/marque","Nom de produit","%alcool","Quantité de vente","logo");
$tableau[1]=array("Bière blonde", "Feldschlösschen lager original","4.8%","Bouteille 25cl");


$longueur = count ($tableau[0]);
$pc= 100/$longueur;


echo "<table border=\"1\" width=\"100%\" >\n";
//--en-tête
echo "<tr>\n";
for($cpt=0;$cpt<count($tableau[0]);$cpt++)
{
echo "<td width=\"$pc%\">".$tableau[0][$cpt]."</td>\n";
}
echo "</tr>\n";
//--le corp
for($cpt=1;$cpt<count($tableau);$cpt++)
{
echo "<tr>\n";
for($cpt2=0;$cpt<count($tableau);$cpt++)
{

echo "<td width=\"$pc%\">".$tableau[$cpt][$cpt2]."</td>\n";

}
echo "</tr>\n";

}

echo "</table>\n";

?>
0