[PHP] Boucle pour ajouter des lignes

Résolu/Fermé
PRK Messages postés 795 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 6 décembre 2015 - 7 avril 2008 à 16:35
 martin - 28 mars 2013 à 10:59
Bonjour,

Voila j'aurais une question a vous poser. Je conçois actuellement un site web et je me confronte a un petit muret qui m'empeche d'avancer :


Je voudrais créer une page .php qui repertorie plusieurs éléments differencié par une categorie (donc une variable ($id) qui identifie la categorie pour l'affichage et qui selon la categorie attribué par la $id affichera un contenu different)

Le problème c'est pour la mise en page car chaque contenu n'aura pas le même nombre de ligne !

Par exemple un contenu pourrait avoir 4 lignes dans ce cas la on pourrait proceder comme cela

$ligne1"";
$ligne2"";
etc...

Mais étant donné que chaque categorie pourra avoir un nombre de ligne different, j'aurais voulu savoir s'il existait une boucle ou un moyen de faire en sorte que php affiche un nombre de ligne egal a une valeur stocké dans une variable (par exemple $nbligne)

Merci d'avance :)
A voir également:

7 réponses

s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 617
7 avril 2008 à 17:00
Salut,

Pas compris O_O
0
PRK Messages postés 795 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 6 décembre 2015 113
7 avril 2008 à 17:18
lol je vais essayer d'être plus clair :

imagine que dans ma page je vais stocker deux différent type d'informations differencié par un id

$ID=1
$ID=2

(dans ma page j'utilise alors if $id=1 alors j'affiche le contenu 1 et vice versa)

(a ce moment tu fais www.xxxx.com/menu.php?id=idx)

Cependant si on admet que mes deux different contenu n'ont pas le même nombre de variables a l'interieur :

Pour $ID=1 :

$nblignes="4";

$ligne1="";
$ligne2="";
$ligne3 ="";
$ligne4="";

POUR $ID=2 :

$nblignes="3";

$ligne1="";
$ligne2="";
$ligne3="";

Lorsque mon contenu va s'afficher (car ces variables contiendront du texte)

Je cherche a savoir comment faire de sorte que sur ma page (car je vais inclure ces variables dans un tableau) que selon le choix il ajuste le nombre de ligne du tableau en fonction du nombre de variable que je stockerai dans une autre

Ca te parait plus clair ?
0
s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 617
7 avril 2008 à 18:12
Non ce n'est pas plus claire parce que je ne voir pas du tout en quoi un id peut par lui même intervenir graphiquement sur le contenu, je ne comprend pas en quoi le contenu est lié directement avec cet id.

L'id ne contiens ni texte ni "nombre de ligne" mais permet d'identifier quelque chose, comme le contenu que l'on va affiché. le problème n'est pas l'id mais justement le contenu, hors tu ne mentionnes ce contenu que par "variables" et des "nombres de lignes". Ce n'est pas un problème de PHP pur mais aussi d'HTML.


"(car je vais inclure ces variables dans un tableau)"
Quel variables ? De quel chapeau elles sortent ? Quel tableau ?


Sans code on va pas avancé, pas besoin de faire des schémas, le code (dans la balise code) sera bien plus claire.
0
PRK Messages postés 795 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 6 décembre 2015 113
7 avril 2008 à 19:10
en fait tu sais quoi ? je vais te montrer un exemple similaire du code ^^
0
PRK Messages postés 795 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 6 décembre 2015 113
7 avril 2008 à 19:16
Si tu regarde ce code en fait je voudrai faire de sorte que par exemple lorsque $classe prend un autre valeur que 1 et que le max de $descr_niv_01 depasse 21 le tout puisse s'afficher quand même. Tu vois ce que je veut dire ? Que ça module en fonction du nombre


voici ce que en gros ma partie PHP de ma page

if ($classe=="1")
{
$sort_niv_01 ="Du texte est contenu dans cette variable (le titre ici)";
	$descr_niv_01 ="Ici le paragraphe";
	
	$sort_niv_02 ="";
	$descr_niv_02 ="";

	$sort_niv_03 ="";
	$descr_niv_03 ="";

	$sort_niv_04 ="";
	$descr_niv_04 ="";

	$sort_niv_05 ="";
	$descr_niv_05 ="";

	$sort_niv_06 ="";
	$descr_niv_06 ="";

	$sort_niv_07 ="";
	$descr_niv_07 ="";
	
	$sort_niv_08 ="";
	$descr_niv_08 ="";

	$sort_niv_09 ="";
	$descr_niv_09 ="";

	$sort_niv_10 ="";
	$descr_niv_10 ="";

	$sort_niv_11 ="";
	$descr_niv_11 ="";

	$sort_niv_12 ="";
	$descr_niv_12 ="";

	$sort_niv_13 ="";
	$descr_niv_13 ="";

	$sort_niv_14 ="";
	$descr_niv_14 ="";

	$sort_niv_15 ="";
	$descr_niv_15 ="";

	$sort_niv_16 ="";
	$descr_niv_16 ="";

	$sort_niv_17 ="";
	$descr_niv_17 ="";

	$sort_niv_18 ="";
	$descr_niv_18 ="";

	$sort_niv_19 ="";
	$descr_niv_19 ="";

	$sort_niv_20 ="";
	$descr_niv_20 ="";

	$sort_niv_21 ="";
	$descr_niv_21 ="";
}


Et maintenant voici ma partie HTML

echo "";
echo "<h class=titre>Description des sorts : $classe<hr class=HR width = 400px align=left></h>";
echo "<br>";

echo "<div>
<table>
<tr>
	<td class=level><h>Niveau 1 :</h></td>
	<td class=sort><h>$sort_niv_01</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_01</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 1 :</h></td>
	<td class=sort><h>$sort_niv_02</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_02</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 1 :</h></td>
	<td class=sort><h>$sort_niv_03</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_03</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 3 :</h></td>
	<td class=sort><h>$sort_niv_04</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_04</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 6 :</h></td>
	<td class=sort><h>$sort_niv_05</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_05</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 9 :</h></td>
	<td class=sort><h>$sort_niv_06</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_06</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 13 :</h></td>
	<td class=sort><h>$sort_niv_07</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_07</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 17 :</h></td>
	<td class=sort><h>$sort_niv_08</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_08</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 21 :</h></td>
	<td class=sort><h>$sort_niv_09</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_09</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 26 :</h></td>
	<td class=sort><h>$sort_niv_10</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_10</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 31 :</h></td>
	<td class=sort><h>$sort_niv_11</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_11</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 36 :</h></td>
	<td class=sort><h>$sort_niv_12</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_12</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 42 :</h></td>
	<td class=sort><h>$sort_niv_13</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_13</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 48 :</h></td>
	<td class=sort><h>$sort_niv_14</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_14</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 54 :</h></td>
	<td class=sort><h>$sort_niv_15</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_15</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 60 :</h></td>
	<td class=sort><h>$sort_niv_16</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_16</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 70 :</h></td>
	<td class=sort><h>$sort_niv_17</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_17</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 80 :</h></td>
	<td class=sort><h>$sort_niv_18</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_18</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 90 :</h></td>
	<td class=sort><h>$sort_niv_19</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_19</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 100 :</h></td>
	<td class=sort><h>$sort_niv_20</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_20</h><br>
	</td>
</tr>
<TD></TD>
<tr>
	<td class=level><h>Niveau 200 :</h></td>
	<td class=sort><h>$sort_niv_21</h></td>
</tr>
<tr>
	<td colspan=2>
	<h class=text>$descr_niv_21</h><br>
	</td>
</tr>
<TD></TD>
</table>
</div>";


Comment je pourrai faire si le nombre de variable (titre+paragraphe) est different d'un If a un autre ? pour que tout s'affiche toujours ? Et notamment que j'ai pas besoin de constuire un tableau statique ?

J'avias pensé utiliser une variable dans chaque If $nblignes qui indiquerait le total de ligne de tableau necessaire pour l'affichage et faire quelquechose ensuite qui gererait le tout.

Dsl si je m'exprime pas très bien je suis pas codeur de métier ni d'orientation ^^
0
s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 617
7 avril 2008 à 21:17
"Comment je pourrai faire si le nombre de variable (titre+paragraphe) est different d'un If a un autre ?"

Je ne vois qu'un seul if ?

Tu n'utilises pas de base de donné ???

Le code HTML laisse à désirer,

La balise <h> n'a pas de niveau, 1, 2, 3, ..., 6.<h1></h1>

Des balise <td> vide hors des balises <tr></tr> (<TD></TD>)


Donc si j'ai bien compris, tu veux affiché un tableau avec un contenu dynamique, et tu veux que le tableau soit lui aussi dynamique.
On peut avoir un Niveau 1 avec un sort et une description, comme on peut ne pas avoir de description pour le niveau 2, pas de sort pour le niveau 3, rien du tout pour le niveau 4 ?

Pourquoi ne pas laisser la cellule description vide quand il n'y en a pas ?
0
PRK Messages postés 795 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 6 décembre 2015 113
8 avril 2008 à 14:05
Pour mon code html c'est normal pour certaines choses (balises <h>, <td> etc..)

Tu me dis que j'ai qu'un seul if c'est normal ^^ j'allais pas te coller laa 10aine de if ^^

Pour le raisonnement je dirai plutot que par exemple dans le 1er if

Il peut y avoir EN TOUT 10 niveau avec leur description et dans 2eme IF que ça s'élève a 25 par exemple:

et la 3eme une autre valeur tu vois c'est jamais pareil ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
s.spark Messages postés 2480 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 617
8 avril 2008 à 18:21
En fait je ne vois pas l'intérêt de faire ça en PHP, ce sont des pages à contenu unique et tu n'as pas d base de donnés, le traitement PHP est inutile.
0
PRK Messages postés 795 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 6 décembre 2015 113
9 avril 2008 à 09:23
Bon au pire c'est pas grave laisse tomber j'ai pu avoir des réponses ailleurs !

Pour information j'ai une base de donnée que j'exploite pour cette page

Simplement un peu de curiosité ne fais jamais de mal :p

Car lorsque gerer un contenu ac une BDD est plus long et penible que tout integrer dans une page. C'est sans doute plus utile de tout inclure dans une page php ;)

Merci quand même de ton investissement

0
par hasard, tu pourrais donner les liens des forums sur lesquels tu as eu des réponses stp ??

Merci !
0