IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[PHPLIB] Afficher deux enregistrements par ligne


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Points : 3
    Points
    3
    Par défaut [PHPLIB] Afficher deux enregistrements par ligne
    Bonjour à tous, j'ai un petit problème... Je souhaiterais afficher dans un tableau deux enregistrement (venant d'une BDD) par ligne du tableau. Afficher deux enregistrement puis revenir à la ligne, afficher deux enregistrement puis revenir à la ligne et aisni de suite...

    mon bout de code actuel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $cadre->set_block('Rubrique', 'Reponses', 'Tbloc');
    	while($reponse = mysql_fetch_array($result_reponses))
    	{
                $cadre->set_var('***', ***********);
                $cadre->set_var('***', ***********);
                $cadre->set_var('***', ***********);
     
                $cadre->Parse('Tbloc', 'Reponses', true);
    	}
     
    	$cadre->pparse('Sortie', 'Rubrique');
    ma template actuel:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <table cellpadding="1" cellspacing="0" >
    <tr>  	
         <!-- BEGIN Reponses -->
         <td><input type="radio" value="{value}" name="{reponse_nom}"/><label>{reponse}</label></td>
         <!-- END Reponses -->
    </tr>			
    </table>

    Le bout de script ci dessus affiche les input radio les uns en dessous des autres, donc un par ligne. Comment dois-je modifier le code pour que ça m'en affiche deux par ligne? Merci d'avance.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <tr>     
         <!-- BEGIN Reponses_1 -->
         <td><input type="radio" value="{value}" name="{reponse_nom}"/><label>{reponse}</label></td>
         <!-- END Reponses_1 -->
         <!-- BEGIN Reponses_2 -->
         <td><input type="radio" value="{value}" name="{reponse_nom}"/><label>{reponse}</label></td>
         <!-- END Reponses_2 -->
    </tr>

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Et dans le code source, il faut que je change quoi? Merci

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Je sais pas, mis à part PHP, j'y connnais rien aux templates ^^

  5. #5
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    euh moi je connais smarty, c est lequel cuila ?

  6. #6
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    as tu moyen de tester dans ton template le numero de l'iteration de ton bloc ?
    a ce moment la tu test si != 0 et si % 2 == 0 tu met un </tr><tr> et pas de else

  7. #7
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Le moteur de template c'est phplib. Merci "siddh" pour ta réponse mais je ne comprend pas trop comment faire. Est ce que tu pourrais m'expliquer un peu plus. merci d'avance.

  8. #8
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    je regardes la doc de phplib et je te dis si ce que je sais faire avec smarty est faisable avec phplib

  9. #9
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Ok merci beaucoup de ton aide parce que là je suis vraiment bloqué.

  10. #10
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    bon apparement t es obligé de passer par des blocks imbriqués ou de magouiller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    $goodTab = array();
    $soustab = array();
    $cmpt = 1;
    while($reponse = mysql_fetch_array($result_reponses)) 
    {
         $tab = array("value" => $reponse[...], "reponse_nom" => $reponse[...], "reponse" => $reponse[...]);
     
         array_push($soustab,$tab);
     
         if($cmpt % 2 == 0){
              array_push($goodTab,$soustab); 
              $soustab = array();
         }
         $cmpt++;
    }   
    $cadre->set_block('Rubrique', 'Reponses', 'Tbloc'); 
    foreach($goodtab as $sstab){
     
         $cadre->set_var('value', $sstab[0]["value"]); 
         $cadre->set_var('reponse_nom', $sstab[0]["reponse_nom"]); 
         $cadre->set_var('reponse', $sstab[0]["reponse"]); 
         $cadre->set_var('value2', $sstab[1]["value"]); 
         $cadre->set_var('reponse_nom2', $sstab[1]["reponse_nom"]); 
         $cadre->set_var('reponse2', $sstab[1]["reponse"]); 
     
         $cadre->Parse('Tbloc', 'Reponses', true); 
    } 
    $cadre->pparse('Sortie', 'Rubrique');
    et ton template :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <table cellpadding="1" cellspacing="0" > 
    <tr>      
         <!-- BEGIN Reponses --> 
         <td><input type="radio" value="{value}" name="{reponse_nom}"/><label>{reponse}</label></td> 
         <td><input type="radio" value="{value2}" name="{reponse_nom2}"/><label>{reponse2}</label></td> 
         <!-- END Reponses --> 
    </tr>          
    </table>

    bon y a peut etre moyen de faire plus simple mais je connais vraiment pas phplib

  11. #11
    Membre éclairé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 949
    Points : 730
    Points
    730
    Par défaut
    avec TBS, il suffit que tu double ton code html...

    cad :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <ul>[block = ul]
    <li> [champ1]</li>
    <li> [champ1]<br /> </li>
    </ul>
     
    => une fois sur deux, il te fusionne le premeir, une fois sur deux, le second...
    si tu voit ce que je veut dire...

  12. #12
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    J'ai essayé ta technique "siddh" mais ça ne fonctionne pas. Il ne me manque plus que ça pour que le site soit au complet SOS!!! LoL. Je continue de chercher, si quelqu'un à une soluce ça ne sera pas de refus. Merci beaucoup

  13. #13
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    qu est ce qui va pas dans ma solution ?

  14. #14
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Je vais essayer un truc qui est de mettre les données dans un tableau puis de "couper" le tableau en deux. Dans la colonne de gauche afficher le 1er tableau et dans la colonne de droite le deuxième tableau. Je vous tiens au courant. Merci de votre aide.

  15. #15
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ben explique moi ce qui te va pas dans ce que je t ai donné pour qu on le modifie

  16. #16
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Ben en fait j'ai modifier l'affichage, il faut que ça affiche 5 enregistrements dans la colonne de gauche et les autres enregistrements dans la colonne de droite. (je n'aurais pas plus de 10 enregistrements au total). Merci.

  17. #17
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Change de système de template ^^

  18. #18
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ouais avec smarty tu te fais en deux coups de cuillère a pot

  19. #19
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    [mode troll="on"]Avec php en un seul coup de cuillère [/mode]

  20. #20
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    $cadre->set_block('Rubrique', 'Reponses2', 'Tbloc2');
    $cadre->set_block('Rubrique', 'Reponses', 'Tbloc');	
     
    $i=1;
    while($reponse = mysql_fetch_array($result_reponses))
    {
      if($i<=5)
      {
         $cadre->set_var('reponse', $reponse["reponse"]);
         $cadre->set_var('value', $reponse["id_reponse"]);
         $cadre->set_var('reponse_nom', "reponse");
         $cadre->Parse('Tbloc', 'Reponses', true);
         $i++; 
       }
      else
      {
       $cadre->set_var('reponse2', $reponse["reponse"]);
       $cadre->set_var('value2', $reponse["id_reponse"]);
       $cadre->set_var('reponse_nom2', "reponse");
       $cadre->Parse('Tbloc2', 'Reponses2', true); 
       }
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <!-- BEGIN Reponses -->
    <tr>
        <td><input type="radio" value="{value} "name="{reponse_nom}"/>{reponse}</td>
     
      <!-- BEGIN Reponses2 -->
      <td><input type="radio" value="{value2}" name="{reponse_nom2}"/>{reponse2}</td>
      <!-- END Reponses2 -->
    </tr>
    <!-- END Reponses -->

    Ca m'affiche bien que 5 enregistrements dans la colonne de gauche mais maintenant le problème se pose pour la colonne de droite.... Avec le test que j'ai fait, ça me met 5 fois le même enregistrement dans la colonne de droite.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Afficher 5 produits par ligne
    Par sylvain45 dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 20/07/2007, 18h08
  2. Afficher les enregistrements par rapport à un caractère saisi
    Par issam47 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 05/06/2007, 17h16
  3. Faire une liste avec deux éléments par ligne
    Par pc.bertineau dans le forum Mise en page CSS
    Réponses: 18
    Dernier message: 12/04/2007, 15h47
  4. [Tableaux] Afficher N images par ligne
    Par karimphp dans le forum Langage
    Réponses: 3
    Dernier message: 31/05/2006, 11h58
  5. [MySQL] afficher plusieurs enregistrements par page par page à la volée
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/03/2006, 13h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo