Fusionner des cellules

Eléphant du PHP | 440 Messages

01 juin 2009, 19:25

Bonjour,

j'ai un tableau (html), 2 colonnes, 2 lignes. Il contient 4 articles. Si je désactive un article, la cellule se vide mais cela crée un "trou" dans le tableau.

J'ai essayé ce code :
<?php  
    $table = "baskets";  
       if ($table.validation==0) 
       { 
                echo '<table><tr><td colspan=2><div align="center"></div></td></tr></table>'; 
    }  
          ?> 
pour fusionner les cellules, mais il ne marche pas !

Quelle est la bonne approche ? Merci pour votre aide.
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
AB
ViPHP | 5818 Messages

01 juin 2009, 19:33

Bonjour,

j'ai un tableau (html), 2 colonnes, 2 lignes. Il contient 4 articles. Si je désactive un article, la cellule se vide mais cela crée un "trou" dans le tableau.

J'ai essayé ce code :
<?php  
    $table = "baskets";  
       if ($table.validation==0) 
       { 
                echo '<table><tr><td colspan=2><div align="center"></div></td></tr></table>'; 
    }  
          ?> 
pour fusionner les cellules, mais il ne marche pas !

Quelle est la bonne approche ? Merci pour votre aide.
C'est quoi ce $table.validation ?

Eléphant du PHP | 440 Messages

01 juin 2009, 20:36

c'est un champ (validation) qui est sur 1 ou sur 0 selon que l'article doit être publié ou non.
Débutant complet en php/mysql. Merci pour votre aide.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

01 juin 2009, 20:49

Quelle est l'utilité de ton <div> dans le <td> ? :shock:

ViPHP
AB
ViPHP | 5818 Messages

01 juin 2009, 21:59

Oui mais if($table.validation == 0) c'est un peu bizarre comme syntaxe, non ? Tu concatène une variable et une constante et tu testes si le résultat = 0 ?

Eléphant du PHP | 440 Messages

01 juin 2009, 22:50

Oui mais if($table.validation == 0) c'est un peu bizarre comme syntaxe, non ? Tu concatène une variable et une constante et tu testes si le résultat = 0 ?
dans un autre code php, très similaire, en concaténant ça marche et sans ça ne marche pas, donc je concatène !
Quelle est l'utilité de ton <div> dans le <td> ?
pour centrer le résultat dans la cellule. C'est l'idée. Ce n'est peut-être pas ce qu'il faut faire !
Débutant complet en php/mysql. Merci pour votre aide.

ViPHP
AB
ViPHP | 5818 Messages

01 juin 2009, 23:10

Pour centrer le résultat dans la cellule. C'est l'idée. Ce n'est peut-être pas ce qu'il faut faire !
As-tu essayé <td style=" text-align:center"> ? cela te permettrait d'éviter ce div inutile.

Eléphant du PHP | 440 Messages

02 juin 2009, 09:52

ça marche. Merci.
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 juin 2009, 12:13

Je suis assez d'accord sur le fait que le <div> n'apporte rien ici... mais quitte à le retirer, pourquoi ne pas virer tout le tableau ? :)

Quel intérêt de supprimer un div inutile mais de laisser un tableau tout aussi inutile ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 440 Messages

02 juin 2009, 15:35

Je suis assez d'accord sur le fait que le <div> n'apporte rien ici... mais quitte à le retirer, pourquoi ne pas virer tout le tableau ? :)

Quel intérêt de supprimer un div inutile mais de laisser un tableau tout aussi inutile ?
Je veux bien, mais comment je fusionne une ligne d'un tableau si je ne parle pas de ce tableau ?
Débutant complet en php/mysql. Merci pour votre aide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 juin 2009, 18:59

Bah euh... en fait tu veux fusionner quoi si t'as pas de données ?

Logiquement, tu devrais avoir un seul tableau, avec deux cellules sur chaque lignes... donc pas de raison d'ajouter un nouveau <table>. Si jamais tu as un nombre d'articles impair à afficher (1 ou 3) il te suffit pour le dernier article de mettre l'attribut colspan="2" dans ca cellule pour l'étendre :

Code : Tout sélectionner

4 3 2 1 [x][x] [x][x] [x][x] [ x ] [x][x] [ x ]
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 440 Messages

02 juin 2009, 19:35

Eh bien, s'il n'y a pas de donées sur la ligne, la ligne ne s'affiche pas.

J'aurais du faire des colonnes dynamiques, mais il y avait une histoire de "while" avec laquelle je ne me suis pas dépatouillé. Donc j'ai trouvé cette astuce, de créer un tableau en dur. C'est peut-être pas très académique, mais ça marche !

Même chose pour afficher la page suivante. J'ai vu qu'il existe un code php pour ça. Il m'a paru bien compliqué. Donc j'en ai créé un autre avec une condition. Là encore c'est pas très beau parce que je crée des pages en dur, mais encore une fois, ça marche !

:wink:
Débutant complet en php/mysql. Merci pour votre aide.