IPB

Bienvenue invité ( Connexion | Inscription )

> résolu : PHP foreach dans array, pour générer tableau Excel
Options
clarusad
posté 6 Mar 2019, 18:56
Message #1


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 329
Inscrit : 17 Oct 2006
Lieu : Strasbourg, France
Membre no 70 694



Salut,
Le but final est de générer un fichier Excel avec cette librairie : PHP_XLSXWriter.

Ça fonctionne très bien à la main :
Code
$data = array(
    array('year','month','amount'),
    array('2003','1','220'),
    array('2003','2','153.5'),
);

$writer = new XLSXWriter();
$writer->writeSheet($data);
$writer->writeToFile('output.xlsx');


Sauf que chez moi je dois remplir $data avec une variable qui contient un tableau. Jusque là tout va bien, puis que si je fais un print_r()
Code
print '<pre>';
print_r($montableau);
print '</pre>';

J'obtiens le résultat attendu :
Code
Array
(
    [0] => Array
        (
            [id] => 13
            [date] => 20191231235959
            [deleg] => 33
            [pren] => PRÉNOM
            [name] => NOM
            [mail] => [email protected]
            [fonc] => delegue_college_elus
            [stru] => STRUCTURE
            [vill] => VILLE
            [pouv] => 1
            [pouvnom] => PERSPOUV
            [pres] => 0
        )

    [1] => Array
        (
            [id] => 14
            [date] => 20191231235959
            [deleg] => 33
            [pren] => PRÉNOM
            [name] => NOM
            [mail] => [email protected]
            [fonc] => delegue_college_elus
            [stru] => STRUCTURE
            [vill] => VILLE
            [pouv] => 0
            [pouvnom] => PERSPOUV
            [pres] => 1
        )

)


Maintenant si je veux combiner les deux :
Code
$data = array(
    array(
        foreach( $result as $id => $ubtable ) {
            print $ubtable['date'];
            }
        ),
    );


Ça plante avec l'erreur suivante : «Parse error: syntax error, unexpected 'foreach' (T_FOREACH), expecting ')' in /Users/blabla... fichier machin ligne truc»

Une idée ?
Merci

Ce message a été modifié par clarusad - 7 Mar 2019, 18:11.
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
Philippe64
posté 8 Mar 2019, 13:59
Message #2


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 265
Inscrit : 31 Aug 2002
Lieu : Saint-Jean-de-Luz
Membre no 3 355



Dans ce cas, c'est un problème d'encodage.
Il faut que tu te renseignes pour savoir quel encodage doit être utilisé avec le module de conversion excel. (UT8 ou autre)

Ensuite, tu vérifies quel encodage tu utilises dans ta base de données et tu te débrouilles pour convertir comme il faut.

par exemple, pour passer de ISO-8859-1 en UTF8 :
utf8_encode()
http://php.net/manual/fr/function.utf8-encode.php

et l'inverse :
utf8_decode()
http://php.net/manual/fr/function.utf8-decode.php

et tu peux reprendre le code que je t'ai déjà donné en exemple en remplaçant strip_tag par utf8_encode (ou utf8_decode)





--------------------
En activité : MacBook Pro 16" M1 Max de 2021 - Macbook pro 15" Core I7 à 2.8Ghz de 2015 - Macbook pro 13" Core I5 à 2.5Ghz - Macbook pro 15" Core duo de 2006
En Panne : Imac 27 Pouces Core I7 à 3.4Ghz - mid 2011 (je cherche un écran)
A la retraite : Imac C2D 24 Pouces (blanc) à 2.33 Ghz - iBook14" 800 Mhz - Quicksilver 733 - G3 bleu et blanc - Macintosh Classic

Crea64 : création de site internet à Saint-Jean-de-Luz (64)
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 4th April 2026 - 18:07