Bonjour, je pose ma question tant qu'il me reste des cheveux ;-)
Le contexte:
-Je récupère une requête mysql (string).
-Avec la librairie FPDF qui permet de créer des fichiers PDF avec PHP, je veux afficher le résultat de cette requête.
-Je cherche à calculer et mémoriser les largeurs des colonnes dans un tableau associatif afin de pouvoir faire correspondre facilement les colonnes avec leur largeur respective.
Ma question est comment créer et remplir un tableau associatif "a la volée" (pendant l'exécution et pas à sa déclaration : var $tab = array("truc" => 1,"bidule"=> 2) ?
Voici un bout de mon code pour illustrer:
Il faut prendre en compte que nous sommes à l'intérieur d'une classe FPDF que j'hérite. La méthode Widths est censée remplir le tableau tabWidth.
En exécutant ce code, je n'ai aucune valeur dans le tableau, que j'y accède par les noms des colonnes ou par un rang entier.
class monPDF extends FPDF { var tabWidth = array(); ... function Widths() { global $query; if($res = mysql_query($query)) { $this->SetFont('Arial','',8); for($i=0;$i < mysql_num_fields($res);$i++) $this->tabWidth[mysql_field_name($res, $i)] = $this->GetStringWidth(mysql_field_name($res, $i)) + 2; $this->SetFont('Arial','',6); while($enr = mysql_fetch_array($res)) for($i=0;$i < mysql_num_fields($res);$i++) { if($this->GetStringWidth($enr[$i]) > $this->tabWidth[mysql_field_name($res, $i)]) $this->tabWidth[mysql_field_name($res, $i)] = $this->GetStringWidth($enr[$i]) + 2; } } } }
|
Biensûr, ca marche en remplacant le nom de colonne par un entier au remplissage, mais ca va me faire galérer pour la suite.
Merci d'avance.
Bonne journée.