Categories > TinyButStrong general (FR) >

Merge de tableau vide

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Augure
Date: 2006-09-19
Time: 13:51

Merge de tableau vide

Bonjour,

J'ai une demande surement trivial mais je n'ai rien trouver dans la faq et le forum.

Je souhaite afficher un tableau de données obtenue via une recherche SQL avec SARG. La requête SQL peut donc me retourner aucune ligne.

Dans ce cas je ne souhaite afficher que l'entête du tableau.

J'ai cru comprendre dans la documentation que si on passe un tableau vide c'est ce qui doit se passer.

Cependant quand je passe à la mathode MergeBlock un tableau vide, aucune ligne ne s'affiche mais j'ai ce message pour chaque champs:
TinyButStrong Error in field [blk1.NOM...] : item 'NOM' is not an existing key in the array. This message can be cancelled using parameter 'noerr'.

Ma/mes questions : est ce le comportement normal de TBS (ou qu'est que j'ai raté) ? Est ce que la seul solutin consiste à positionner l'option 'noerr' ?

Cordialement

CODE PHP :
function array_result($objResult) {
    while ($row = $this->fetch($objResult)) {
        $array_result[] = $row;
    }
    if (!isset($array_result)){
        $array_result[]=NULL; // Pour obtenir un tableau vide
    }
    return $array_result;
}

$result = $mysqli->query($SQL);
$array_list_client = array_result($result);

$TBS = new clsTinyButStrong;
$TBS->LoadTemplate(CST_PATH_TEMPLATES . '/template_client_liste.html');
$TBS->MergeBlock('blk1', 'array' , $array_list_client);
$TBS->Show();

TEMPLATE HTML:
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
    <tr>
      <th>Nom</th>
      <th>Pr&eacute;nom</th>
      <th>Tel Fixe</th>
      <th>Tel Pro</th>
      <th>Tel Mobile</th>
    </tr>
    <tr class="pair">
      <td><a href="[blk1.NOM;magnet=a]">[blk1.NOM;block=tr]</a></td>
      <td><a href="[blk1.URL;magnet=a]">[blk1.PRENOM]</a></td>
      <td><a href="[blk1.URL;magnet=a]">[blk1.TEL_FIXE]</a></td>
      <td><a href="[blk1.URL;magnet=a]">[blk1.TEL_PRO]</a></td>
      <td><a href="[blk1.URL;magnet=a]">[blk1.TEL_MOBIL]</a></td>
    <tr class="impair">
    </tr>
      <td><a href="[blk1.NOM;magnet=a]">[blk1.NOM;block=tr]</a></td>
      <td><a href="[blk1.URL;magnet=a]">[blk1.PRENOM]</a></td>
      <td><a href="[blk1.URL;magnet=a]">[blk1.TEL_FIXE]</a></td>
      <td><a href="[blk1.URL;magnet=a]">[blk1.TEL_PRO]</a></td>
      <td><a href="[blk1.URL;magnet=a]">[blk1.TEL_MOBIL]</a></td>
    </tr>
</table>

By: Skrol29
Date: 2006-09-19
Time: 23:10

Re: Merge de tableau vide

Salut,

> $array_result[]=NULL;

cette ligne n'est pas bonne, tu ne crée pas un tableau vide mais un tableau avec un enregistrement vide.
Il faut faire

  $array_result = array();
By: TiTi
Date: 2006-09-23
Time: 15:10

Re: Merge de tableau vide

Si tu veux effacer tout le tableau tu peux utiliser le paramètre bmagnet=(table) à l'endroit ou tu décris ta boucle, cad :

<td><a href="[blk1.NOM;magnet=a]">[blk1.NOM;block=tr;bmagnet=(table) ]</a></td>