Aller au contenu

[RESOLU] Modification d'un code php

Featured Replies

Posté(e)

Bonjour,

Je cherche depuis un bon moment, mais je ne trouve pas de solution à mon problème.

Pour mieux comprendre je vous invite à jeter un oeil sur cette page http://www.massivlan.fr/?page=sponsors

Comme vous pouvez le voir les 3 "sponsors" sont les uns à côté des autres, or j'aimerais qu'ils soient les uns en dessous des autres.

Voici une partie du code qui affiche cette page, la fonction <br> ne donne rien car j'ai l'impression qu'il y a plusieurs tableaux imbriqués.

while($sponsor = $db->fetch($sponsors)) {

$tab_sponsors[]=$sponsor;

}

echo "<table cellspacing=0 cellpadding=0 border=0 class=liste><tr valign=top><td>";

echo "<table cellspacing=10 cellpadding=2 border=0>";

for($i=0;$i<count($tab_sponsors);$i++) {

if($i%$config['col_sponsors'] == 0) echo "<tr>";

$sponsor->nom=stripslashes($tab_sponsors[$i]->nom);

echo "<td height=100% align=center>";

echo "<table cellspacing=0 cellpadding=0 border=0 height=100% >";

echo "<tr>";

echo "<td class=text2 align=center height=100%><a href=\"?page=sponsors&id=".$tab_sponsors[$i]->id."\"><img border=0 src=\"images/sponsors/".$tab_sponsors[$i]->image."\" title=\"".$tab_sponsors[$i]->nom."\"></a></td>";

echo "</tr>";

echo "<tr>";

echo "<td class=text2 valign=bottom align=center><li class=lib><b>$sponsor->nom</b><br>";

echo "</td>";

echo "</tr></table>";

echo "</td>";

if($i%$config['col_sponsors'] == $config['col_sponsors']-1) echo "</tr>";

}

echo "</table></td></tr></table>";

Je commence un peu à désespérer ^^, j'ai testé beaucoup de chose mais je ne trouve rien. Pourriez vous m'aider ?

Je vous remercie d'avance

Modifié par MassiV

Posté(e)
Bonjour,

Je cherche depuis un bon moment, mais je ne trouve pas de solution à mon problème.

Pour mieux comprendre je vous invite à jeter un oeil sur cette page http://www.massivlan.fr/?page=sponsors

Comme vous pouvez le voir les 3 "sponsors" sont les uns à côté des autres, or j'aimerais qu'ils soient les uns en dessous des autres.

Voici une partie du code qui affiche cette page, la fonction <br> ne donne rien car j'ai l'impression qu'il y a plusieurs tableaux imbriqués.

while($sponsor = $db->fetch($sponsors)) {

$tab_sponsors[]=$sponsor;

}

echo "<table cellspacing=0 cellpadding=0 border=0 class=liste><tr valign=top><td>";

echo "<table cellspacing=10 cellpadding=2 border=0>";

for($i=0;$i<count($tab_sponsors);$i++) {

if($i%$config['col_sponsors'] == 0) echo "<tr>";

$sponsor->nom=stripslashes($tab_sponsors[$i]->nom);

echo "<td height=100% align=center>";

echo "<table cellspacing=0 cellpadding=0 border=0 height=100% >";

echo "<tr>";

echo "<td class=text2 align=center height=100%><a href=\"?page=sponsors&id=".$tab_sponsors[$i]->id."\"><img border=0 src=\"images/sponsors/".$tab_sponsors[$i]->image."\" title=\"".$tab_sponsors[$i]->nom."\"></a></td>";

echo "</tr>";

echo "<tr>";

echo "<td class=text2 valign=bottom align=center><li class=lib><b>$sponsor->nom</b><br>";

echo "</td>";

echo "</tr></table>";

echo "</td>";

if($i%$config['col_sponsors'] == $config['col_sponsors']-1) echo "</tr>";

}

echo "</table></td></tr></table>";

Je commence un peu à désespérer ^^, j'ai testé beaucoup de chose mais je ne trouve rien. Pourriez vous m'aider ?

Je vous remercie d'avance

(du HTML affiché uniquement grâce à des "echo", quelle horreur :yes:)

Un rapide examen de ton code HTML (ça n'a rien à voir avec du PHP !) avec Firebug me montre tes sponsors sont sur la même ligne d'un tableau. Ca t'arrive de lire le code source de tes pages HTML ? :craint:

Posté(e)

Bon, j'ai fait un peu de refactoring, que je n'ai pas testé mais qui devrait fonctionner. J'en ai profité pour virer les conditions sur la balise "tr", à mon avis elles ne servaient à rien, sinon à afficher tes sponsors les uns à côté des autres ^^' Etant donné que j'ai fait ça au bloc notes y'a peut-être des fautes de frappes qui m'ont echappé

<?php
while( $sponsor = $db->fetch( $sponsors ) ) {
 $tab_sponsors[] = $sponsor;
}
?>
<table cellspacing="0" cellpadding="0" border="0" class="liste">
 <tr valign="top">
<td>
  <table cellspacing="10" cellpadding="2" border="0">

<?php
// Si tu fous le count dans ton for il va le recalculer à chaque fois, très mauvais pour les perfs
$cnt_sponsors = count( $tab_sponsors );
for( $i = 0; $i < $cnt_sponsors; $i++ ) {

?>
	<tr>
<?php
 $sponsor_id = $tab_sponsors[$i]->id;
 $sponsor_nom = stripslashes( $tab_sponsors[$i]->nom );
 $sponsor_image = $tab_sponsors[$i]->image;
?>
	  <td style="height: 100%;text-align: center;">

		<table cellspacing="0" cellpadding="0" border="0" height="100%" >
		  <tr>
			<td class="text2" style="text-align: center;height: 100%;">
			  <a href="?page=sponsors&id=<?php echo $sponsor_id; ?>"><img border="0" src="images/sponsors/<?php echo $sponsor_image; ?>" title="<?php echo $sponsor_nom; ?>"></a>
			</td>
		  </tr>

		  <tr>
			<td class="text2" valign="bottom" align="center">
			  <ul><li class="lib"><b><?php echo $sponsor_nom; ?></b></li></ul>
			</td>
		  </tr>
		</table>

	  </td>
	</tr>
  </table>
</td>
 </tr>
</table>
<?php
 unset( $sponsor, $tab_sponsors );
?>

:craint:

Posté(e)
  • Auteur

Génial !!! :iloveyou:

Merci bensor ! Tu me sors une grosse épine du pied ^^

Bon pour le code tout moche je m'explique, j'utilise un outil de gestion de tournois nommé "phptournoi", un peu comme Nuked Klan si tu connais ... (http://www.phptournois.net)

Donc personnellement je n'ai rien codé, en revanche je m'amuse à bidouiller les différents fichiers de cet outils, afin d'arriver à mes fin (par exemple tout le nouveau design du site que j'ai réussi à intégrer, ou encore la modification du bloc partenaire pour qu'il défile comme celui des sponsors, la Shoutbox que j'ai rajouté etc ...) Et tout ça avec seulement quelques connaissances en html, et bien sûr, google :)

Finalement j'ai retravaillé tes modifications pour pouvoir l'intégrer au reste du code de la page, tu va encore crier désolé ^^, mais au moins ça marche :)

while( $sponsor = $db->fetch( $sponsors ) ) {

$tab_sponsors[] = $sponsor;

}

echo "<table cellspacing=0 cellpadding=0 border=0 class=liste>";

echo "<tr valign=top>";

echo "<td>";

echo "<table cellspacing=10 cellpadding=2 border=0>";

$cnt_sponsors = count( $tab_sponsors );

for( $i = 0; $i < $cnt_sponsors; $i++ ) {

echo "<tr>";

$sponsor_id = $tab_sponsors[$i]->id;

$sponsor_nom = stripslashes( $tab_sponsors[$i]->nom );

$sponsor_image = $tab_sponsors[$i]->image;

echo "<td height=100% align=center>";

echo "<table cellspacing=0 cellpadding=0 border=0 height=100%>";

echo "<tr>";

echo "<td class=text2 align=center height=100%>";

echo "<a href=\"?page=sponsors&id=".$sponsor_id."\"><img border=0 src=\"images/sponsors/".$sponsor_image."\" title=\"".$sponsor_nom."\"></a>";

echo "</td>";

echo "</tr>";

echo "<tr>";

echo "<td class=text2 valign=bottom align=center>";

echo "<li class=lib><b>$sponsor_nom</b></li>";

echo "</td>";

echo "</tr>";

echo "</table>";

}

echo "</td>";

echo "</tr>";

echo "</table>";

echo "</td>";

echo "</tr>";

echo "</table>";

unset( $sponsor, $tab_sponsors );

Pour que tu vois un peu mieux je t'ai upper le code de la page entière, qui n'est qu'une des nombreuses pages de phptournoi http://massivlan.free.fr/sponsors.txt

Tu retrouvera preque tout en bas le code ci dessus.

Enfin grâce à toi ça marche, j'ai quand même passé plusieurs heures hier et aujourd'hui sur ce problème ^^, donc encore merci tu m'a bien aider :)

Posté(e)

Tu peux mettre le sujet en résolu ? :cartonrouge:

Sinon je ne vois pas l'intérêt d'afficher les balises html du tableau via à chaque fois un echo, à part augmenter le nombre d'instructions à taper. ^^

Posté(e)
Sinon je ne vois pas l'intérêt d'afficher les balises html du tableau via à chaque fois un echo, à part augmenter le nombre d'instructions à taper. ^^

Moi j'avais tout bien refactoré en plus :mdr2:

;)

Posté(e)
  • Auteur

Je vous ai expliqué pourquoi ^^, sans les echo, je devrai recoder tout phptournoi, y'en a pour des années tout seul ^^, j'ai pas que ça à faire :byebye:

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.