Categories > TinyButStrong general (FR) >

Utiliser la même requête ?

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Toan
Date: 2006-03-02
Time: 17:21

Utiliser la même requête ?

Bonjour,

Pourquoi ne peut-t'on pas utiliser la même requête et afficher autant de fois que l'on veut un bloc venant de la même requête?

Je m'explique:

Le fichier PHP:
<?php
...

//requete des societes
$reqSocietes  = "SELECT S.soc_siren, S.soc_rcs FROM Societes S ";
$reqSocietes .= "ORDER BY S.soc_rcs ;";

$TBS->MergeBlock('bloc_societes', $id_connexion, $reqSocietes);
...
?>

Le fichier HTML:
<body>
...
<tr bgcolor=[var.tab_constantes.COUL_GRIS]>
        <td colspan=2 align=center height=30>
        <b>Soci&eacute;t&eacute;:</b>
        <br>
          <select name="Societes[]">
            <option value="[bloc_societes.soc_siren]">
            [bloc_societes.soc_siren;frm='0 000.'; block=option] RCS [bloc_societes.soc_rcs; block=option]
        </option>
        </select>
        <br><br>
        <b>Nombre de parts:</b>
        <br>
          <input type=text name='Parts[]' maxlength=3 size=4 /> <b>%</b>
        </td>
</tr>
<tr bgcolor=[var.tab_constantes.COUL_GRIS]>
        <td colspan=2 align=center height=30>
        <b>Soci&eacute;t&eacute;:</b>
        <br>
          <select name="Societes[]">
            <option value="[bloc_societes.soc_siren]">
            [bloc_societes.soc_siren;frm='0 000.'; block=option] RCS [bloc_societes.soc_rcs; block=option]
        </option>
        </select>
        <br><br>
        <b>Nombre de parts:</b>
        <br>
          <input type=text name='Parts[]' maxlength=3 size=4 /> <b>%</b>
        </td>
</tr>
...
</body>

la page HTML générée n'affiche qu'une fois la ligne :
<tr bgcolor=#EFEFEF>
        <td colspan=2 align=center height=30>
        <b>Soci&eacute;t&eacute;:</b>
        <br>
          <select name="Societes[]">
            <option value="413747130">
            413 747 130 RCS BREST
        </option>
        </select>
        <br><br>
        <b>Nombre de parts:</b>
        <br>
          <input type=text name='Parts[]' maxlength=3 size=4 /> <b>%</b>
        </td>
    </tr>

Par contre si j'utilise autant de fois de requêtes, je pourrai afficher autant de fois de blocs correspondant!
Or ce n'est pas très heureux, car c'est la même requête qui est éxécutée!

c'est la bonne façon de procéder?

Merci de votre réponse.
By: Skrol29
Date: 2006-03-02
Time: 19:52

Re: Utiliser la même requête ?

Salut Toan,

Ce n'est pas la bonne façon de procéder.
Ce qui arrive dans ton cas, c'est que les deux blocs sont nommés pareils donc ils sont pris pour les sections d'un même bloc. Et donc tout se qui se trouve entre les deux est supprimé.

Si tu veux fusionner plusieurs blocs "fixes" avec les données d'une même requête, alors il faut donner un nom différente aux deux blocs puis els fusionner en un seul coup avec MergeBlock().
Exemple :
$TBS->MergeBlock('bloc1,bloc2',$cnx,$SQL);

Si les blocs on été multipliés parce qu'il se trouvaient dans la section d'nu autre bloc (ce qui semble être le cas chez toi car tes lignes de tableaux semblent identiques), alos il suffit de fusionner d'abord ton bloc de list, puis le bloc qui l'englobe.