|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() daniel thirion Inscription : février 2011 Messages : 21 ![]() |
Bonjour à tous
Grâce au script suivant, je parviens à afficher le contenu de 2 csv dans un seul tableau html. Déjà bien pour mes maigres compétences!!! Mais en fait, je voudrais pouvoir fusionner les 2 csv pour les afficher triés. Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
fusionner mais comment ?
ps : c'est pas sizeof mais count, et pour parcourir un array c'est pas for mais foreach
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#3 |
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 661 ![]() |
Si je comprends bien, tu veux afficher le contenu, fusionné et trié sur un certain paramètre, de tes deux fichiers CSV dans un tableau HTML.
Bêtement, j'aurais tendance à mettre le contenu des deux fichiers dans un gros array php et faire un sort (ou un usort) dessus. Pour compléter le ps de stealth35, pour parcourir le fichier j'utiliserai plutôt while($ligne = fgetcsv($p1, 1024, ",")) et foreach pour lire les éléments de la ligne. @stealth35 : sizeof est un alias de count, donc logiquement ça doit fonctionner aussi (cela dit, moi aussi je préfère utiliser count)
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() daniel thirion Inscription : février 2011 Messages : 21 ![]() |
Oui Celira, tu as parfaitement compris mon problème.
Mais vu mes faibles connaissances en PHP, je ne sais pas comment m'y prendre.... |
|
|
00
|
|
|
#5 |
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 661 ![]() |
Comment ajouter un élément à un tableau ? Comment trier un tableau multidimensionnel sur ses deuxième et troisième colonnes ? et PHP : Le tutoriel pour grands débutants pressés L'idée c'est :
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() daniel thirion Inscription : février 2011 Messages : 21 ![]() |
Merci Celira pour ton plan de travail.
Voici une première approche, qui bien sûr ne fonctionne pas.... Pardon pour la non-coloration du code, mais les boutons sont désactivés Dur, dur le PHP à 60 ans !!! Code :
|
||
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : septembre 2010 Messages : 7 131 ![]() |
il faut faire un array_multisort pour faire le tri,
ps : plutôt faire : $fusion[] = $ligne que array_push($fusion, $ligne);
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#8 | ||
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 661 ![]() |
Ton tableau de départ n'est pas vraiment vide
Et on ne peut pas faire un echo d'un tableau. Donc soit tu utilises print_ r (juste pour voir ce qu'il ya dedans), soit tu reprends l'affichage en tableau html que tu utilisais dans ton 1er script. Code :
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() daniel thirion Inscription : février 2011 Messages : 21 ![]() |
Merci Celira, ça prend forme.
Il me reste à effectuer le tri. J'ai essayé : sort($fusion); Mais le tri s'effectue sur la colonne 1 et je souhaite le faire sur une autre colonne. Peut-être avec array_multisort, mais la syntaxe me dépasse. |
|
|
00
|
|
|
#10 | ||
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 661 ![]() |
Il faut que tu écrives une fonction qui fasse la comparaison entre 2 lignes, puis que tu utilises cette fonction comme fonction de tri. Par exemple :
Code :
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
||
|
|
00
|
|
|
#11 | ||
|
Invité de passage
![]() daniel thirion Inscription : février 2011 Messages : 21 ![]() |
Impec Celira
Une dernière (?) précision : lors de l'affichage en tableau de $fusion, je souhaiterais n'afficher que certaines colonnes. Lors du traitement habituel de l'affichage d'un csv, j'utilise : Code :
|
||
|
|
00
|
|
|
#12 | ||||
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 661 ![]() |
l'instruction foreach ($tab as $i => $val) est équivalente à for ($i = 0; $i < sizeof($tab); $i++) avec $val qui vaut $tab[$i]
Donc ton code : Code :
Code :
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
||||
|
|
00
|
|
|
#13 | ||
|
Invité de passage
![]() daniel thirion Inscription : février 2011 Messages : 21 ![]() |
merci Celira, mais c'est décidément compliqué le PHP... En plus, on peut faire la même chose de différentes manières !!!
Grâce à toi, j'ai pratiquement terminé mon module. J'ai rajouté quelques array_pop($fusion), j'ai modifié la fonction tri : celle que tu m'avais proposée effectuait une comparaison binaire et non numérique. J'ai donc utilisé : Code :
|
||
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() daniel thirion Inscription : février 2011 Messages : 21 ![]() |
...C'est jamais vraiment terminé : je voudrais pouvoir ajouter une colonne avant les autres lors de l'affichage de mon tableau $fusion.
elle contiendrait 1 2 3 .... 251 252 jusqu'au nb max lignes de $fusion Est-ce réalisable ? |
|
|
00
|
|
|
#15 | ||
|
Invité de passage
![]() daniel thirion Inscription : février 2011 Messages : 21 ![]() |
comment faire une incrementation pour remplacer :
Code :
|
||
|
|
00
|
|
|
#16 | ||
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 661 ![]() |
Tu places un compteur à l'extérieur de la boucle sur les lignes que tu incrémentes à l'intérieur.
Code :
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com