La communauté ALL HTML c'est 58254 membres à ce jour dont 0 inscrits aujourd'hui et 31 depuis une semaine.

  • imprimer
  • aide

Forum de discussions « Publications ALL HTML »

Créer des tableaux avec N cellules par ligne (modulo)

liste des forums liste des discussions Participer à la discussion

Photo de telnes Message publié le mercredi 12 décembre 2007 à 21 h 21 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org

Modulo kezako

L'opérateur modulo est représenté par "%" en informatique.

Définition

 

Il y a une definition sur wikipédia http://fr.wikipedia.org/wiki/Arithm%C3%A9tique_modulaire mais il faut s'accrocher :)

je vais donc donner une définition simple !


a % b est le reste de la division entière de a par b

en prenant un exemple :

13 % 10 = 3

parce que 13 / 10 = 1 reste 3
Exemple

tester le code suivant
<?php

for($i=0;$i<16;$i++){
echo "$i % 4 =".($i%4)."<br />";
}

?>

qui devrait vous donner


0 % 4 =0
1 % 4 =1
2 % 4 =2
3 % 4 =3
4 % 4 =0
5 % 4 =1
6 % 4 =2
7 % 4 =3
8 % 4 =0
9 % 4 =1
10 % 4 =2
11 % 4 =3
12 % 4 =0
13 % 4 =1
14 % 4 =2
15 % 4 =3


explication de 2%4 : combien de fois on peut mettre 4 dans 2, 0 fois donc il reste 2

Trève de mathématique et passons à la pratique

<?php $nb = 3; //nombre de cellule par ligne echo "<table border=1>\n"; for($i=0;$i<16;$i++){ $start = ($i%$nb == 0)?"<tr>":""; //si 1ere élement on commence une ligne $end = ($i%$nb == $nb-1)?"</tr>\n":""; //si dernier élément on finit la ligne echo "$start<td>$i</td>$end"; //on affiche } echo "</table>\n"; ?>

qui retournera le code :

<table border=1>
<tr><td>0</td><td>1</td><td>2</td></tr>
<tr><td>3</td><td>4</td><td>5</td></tr>
<tr><td>6</td><td>7</td><td>8</td></tr>
<tr><td>9</td><td>10</td><td>11</td></tr>
<tr><td>12</td><td>13</td><td>14</td></tr>
<tr><td>15</td></table>

ceci est un exemple d'utilisation du modulo, d'autre solution sont possible en utilisant les if différament. Il n'y a jamais une solution.
Photo de pchlj Message publié le lundi 17 décembre 2007 à 14 h 42 par pchlj. no comment !
Comme en effet il n'existe jamais qu'une solution voici celle que j'utilise de temps en temps en parallèle d'une solution avec modulo :) (quasi comme la tienne :)

<? $nb = 3; print "<table><tr>"; for($i=0;$i<16;$i++) { print "<td>$i</td>"; $tour++; if($tour == $nb) { $tour=0; print "</tr><tr>"; } } print "</tr></table>"; ?>

ce qui donne ceci

<table>
<tr><td>0</td><td>1</td><td>2</td></tr>
<tr><td>3</td><td>4</td><td>5</td></tr>
<tr><td>6</td><td>7</td><td>8</td></tr>
<tr><td>9</td><td>10</td><td>11</td></tr>
<tr><td>12</td><td>13</td><td>14</td></tr>
<tr><td>15</td></tr>
</table>

cad la même chose lol :)
Photo de telnes Message publié le lundi 17 décembre 2007 à 20 h 39 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
ca chipotte ca chipotte ^^
Photo de Dr_von_scott Message publié le lundi 24 décembre 2007 à 17 h 21 par Dr_von_scott.
Histoire de chipoter un peu plus,

Un tableau ou le nombre de <td> par <tr> n'est pas identique
c'est pas terrible.
Il est aussi vrai que je ne fais pas mieux mais il serait interressant de travailler sur l'insertion d'un colspan en derniere ligne.

N'est'il pas ? :p

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions