• 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 - 21h21 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 - 14h42 par pchlj. www.dragon-gift.com - Cherche boulot région le mans :)
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 - 20h39 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 - 17h21 par Dr_von_scott. http://www.institutbeautyzen.com
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
Photo de keul Message publié le jeudi 11 décembre 2008 - 14h49 par keul.
Pourquoi en pas en profiter pour utiliser la propriété flottante de CSS?
http://css.maxdesign.com.au/floatutorial/tutorial0407.htm
Photo de telnes Message publié le vendredi 12 décembre 2008 - 10h06 par telnes. toujours revenir au debut - http://telnesmaster.free.fr/allhtml/index2.html - http://telnesmaster.free.fr/litetemplate - http://www.hotcontest.org
si mais c'était pas le sujet. après oui les CSS une très bonne solution.

mais cette question revenais souvent sur le forum donc ... elle a eu droit à un tuto

++
Photo de taourirt Message publié le jeudi 21 mai 2009 - 10h49 par taourirt. taourirt.info : Actualité de Taourirt et sa région
slt
Photo de harleyluya Message publié le vendredi 15 janvier 2010 - 17h02 par harleyluya.
Salut,
Moi j'utilise le modulo pour griser une ligne sur deux... Il y a peut-être mieux, alors n'hésitez pas à me donner le truc.
A+

if ($i%2 == 1)
{
echo "<tr valign='top'>";
echo "<td align='center' bgcolor='#E8E8E8'>";
echo "<a href=EditMember.php?MBR=$ligne->MemberID'><img src='edit.png' alt='Edit' border='0'></a>&nbsp;";
echo "</td>";
echo "<td align='right' bgcolor='#E8E8E8'>$ligne->MemberID</td>";
echo "<td align='left' bgcolor='#E8E8E8' nowrap><b>$ligne->LastName</b>&nbsp;</td>";
echo "<td nowrap align='left' bgcolor='#E8E8E8'>$ligne->FirstName&nbsp;</td>";
echo "</tr>";

}else{

echo "<tr valign='top'>";
echo "<td align='center'>";
echo "<a href=EditMember.php?MBR=$ligne->MemberID'><img src='edit.png' alt='Edit' border='0'></a>&nbsp;";
echo "</td>";
echo "<td align='right'>$ligne->MemberID</td>";
echo "<td align='left' nowrap><b>$ligne->LastName</b>&nbsp;</td>";
echo "<td nowrap align='left'>$ligne->FirstName&nbsp;</td>";
echo "</tr>";

}

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