By: Jilou
Date: 2006-11-15
Time: 11:20
|
%P1% avec des arrays
Bonjour Skrol
Voilà, j'utilise ton système de Glossaire découvert dans le forum et j'ai trouvé ça génial.
PHP
$TBS->MergeBlock('princ','mysql','SELECT DISTINCT UCASE(LEFT(nom,1)) AS lettre FROM annuaire ORDER BY nom');
$TBS->MergeBlock('sub','mysql','SELECT * FROM annuaire WHERE nom REGEXP "^%p1%" ORDER BY nom');
$TBS->MergeBlock('blk1','mysql','SELECT DISTINCT UCASE(LEFT(nom,1)) AS lettre FROM annuaire ORDER BY nom');
|
HTML
<DIV align=center>
[blk1;block=begin]<A class=lettre href="#Gloss[blk1.lettre]">[blk1.lettre]</a> - [blk1;block=end]<BR>
</DIV>
<cap>
<DIV class=cadretitreannuaire><A NAME=Gloss[princ.lettre]>[princ.lettre;block=cap]</DIV>
<DIV class=cadre>
<table border = 0 cellpadding="2" cellspacing="0">
<tr>
<td width="200" class="cadredroit">[sub.nom;block=TR;p1='[princ.lettre]']</td>
<td width="300" >[sub.adresse]</td>
<td class="cadregauche">[sub.tel]</td>
</tr>
</table>
</div>
</cap>
|
Je voudrais remplacer la table MySQL par un fichier CSV pour faciliter la mise à jour utilisateur.
J'arrive à extraire les initiales dans un tableau comme ça :
<?php
$CSVfile= "annuaire.csv";
$handle = fopen($CSVfile, "r") or die("Cannot open $CSVfile");
while (($data = fgetcsv($handle, 512, ";")) !=false)
{
list($array0[]) = $data{0};
}
$result = array_unique($array0);
fclose($handle);
?>
|
Comment mettre en relation ce tableau avec le fichier CSV en utilisant l'équivalent de %P1% des Mergeblocks.
Merci
Jilou
|
By: Skrol29
Date: 2006-11-15
Time: 13:40
|
Re: %P1% avec des arrays
Salut,
Ce n'est pas possible de filtrer un ensemble d'item de tableau sur leur valeur avec la simple technique des %p1% de TBS.
Malheureusement tu dois filtrer les enregistrement avec ton propre code PHP. Tu peux par exemple monter ta variable $result différemment de sorte que tous les enregistrements soient classifiés par lettre.
$result[$lettre][] = enreg
Quand tu as ça, le MergeBlock avec %p1% devient trivial.
|
By: Jilou
Date: 2006-11-15
Time: 14:38
|
Re: %P1% avec des arrays
Merci pour ta réponse.
Jilou
|
|
Posting in progress.
Please wait...
|