Petit probleme d affichage avec mon code php !

jul
Eléphant du PHP | 56 Messages

11 mars 2005, 15:00

Salut à tous,

j ai encore un petit probleme d affichage avec mon php !
Dans le code suivant je n arrive pas a faire en sorte que mon lien soit détaché de mon img gif ce qui fait que mon tableau deborde et casse l ergonomie de mon site ! normalement je devrais avoir le liens en dessou de mon img gif alors que là il reste attaché sur le coté gauche ce qui me deplace tout ! j espere etre asser claire... :?

[php]
<table width="200" border="0" align="center">
<tr>
<td><img src="images/rubriques.jpg" width="102" height="25"></td>
</tr>
<?
$query=mysql_query("SELECT * FROM news2 WHERE '1'");
while($a=mysql_fetch_array($query)) {
$url="".$a['url']."";
$lien="".$a['text_lien']."";
?>
<tr>
<td>
<div align="center" class="Style9 Style1">
<?
echo "".$a['text_fr']."<br>";
echo "<a href=\"$url\">$lien</a>";
$img="".$a['img']."";
echo "<img src=\"images/$img\">";
?>
</div>
</td>
</tr>
<?
}
?>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
[/php]
[ Jul ] Souviens toi que le chène majestueux proviens d'un gland ridicule !

Eléphanteau du PHP | 32 Messages

11 mars 2005, 15:33

 
<table width="200" border="0" align="center"> 
<tr> 
<td><img src="images/rubriques.jpg" width="102" height="25"></td> 
</tr> 
<?php
$query=mysql_query("SELECT * FROM news2 WHERE '1'"); 
while($a=mysql_fetch_array($query)) { 
        $url=$a['url']; 
        $lien=$a['text_lien']; 
        echo "<tr><td align=center class='Style9 Style1'>";
        echo $a['text_fr']."<br>"; 
        echo "<a href=".$url.">".$lien."</a><br>"; 
        $img=$a['img']; 
        echo "<img src=images/".$img.">";
        echo "</td></tr>";
} 
?> 
<tr> 
<td>&nbsp;</td> 
</tr> 
<tr> 
<td>&nbsp;</td> 
</tr> 
</table> 

Mammouth du PHP | 859 Messages

11 mars 2005, 16:35

<table width="200" border="0" align="center">
<tr>
<td><img src="images/rubriques.jpg" width="102" height="25"></td>
</tr>
<?php
$query=mysql_query("SELECT * FROM news2 WHERE '1'");
while($a=mysql_fetch_array($query)) {
        $url=$a['url'];
        $lien=$a['text_lien'];
        echo "<tr><td align=center class='Style9 Style1'>";
        echo $a['text_fr']."</td></tr>";
        echo "<tr><td><a href=".$url.">".$lien."</a></td></tr>";
        $img=$a['img'];
        echo "<tr><td><img src=images/".$img.">";
        echo "</td></tr>";
}
?>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
Avec ça il ira à la ligne à coup sûr. J'ai simplement rajouté des lignes à ton tableau dans la boucle while pour que chaque élément soit dans une cellule plus bas ;)

Tu devrais également t'habituer dès maintenant à coder en XHTML 1.1 pour que ton site soit conforme aux standards web :

exemple :
<table width="200" border="0" align="center">

devient

<table style="width: 200px; border: none; margin-left: auto; margin-right: auto">
Un conseil, évite également de faire plein d'echo en php. Tu fermes ta balise ?> et tu pases en HTML avec seulement les variables entre <?php ?>
Modifié en dernier par flitox le 11 mars 2005, 16:39, modifié 1 fois.

Mammouth du PHP | 19672 Messages

11 mars 2005, 16:38

Comme l'a montré RLBDC, il suffit de rajouter des retours de ligne aux bonnes places. J'ajouterais que pour que le code généré reflête aussi les retours à la ligne, tu peux fignoler comme ceci:
<table width="200" border="0" align="center">
	<tr>
		<td><img src="images/rubriques.jpg" width="102" height="25"></td>
	</tr>
<?
$query=mysql_query("SELECT * FROM news2 WHERE '1'");
while($a=mysql_fetch_array($query))
{
	$url=$a['url'];
	$lien=$a['text_lien'];
?>
	<tr>
		<td>
			<div align="center" class="Style9 Style1">
<?
	echo $a['text_fr']."<br>\n";
	echo "<a href=\"".$url."\">".$lien."</a><br>\n";
	$img=$a['img'];
	echo "<img src=\"images/".$img."\">\n";
?>
			</div>
		</td>
	</tr>
<?
}
?>
	<tr>
		<td>&nbsp;</td>
	</tr>
	<tr>
		<td>&nbsp;</td>
	</tr>
</table>
Tu noteras des ajouts pour encadrer "proprement" les variables PHP dans les chaines de caractères , donc href=\"".$url."\" au lieu de href=\"$url\" et la suppression d'éléments inutiles : $url=$a['url']; au lieu de $url="".$a['url']."";

Précision : tu mentionnes le lien en dessous de l'image : sans rien changer dans l'ordre de tes lignes, tu auras ici un lien au dessus de l'image.
Bon code
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

jul
Eléphant du PHP | 56 Messages

11 mars 2005, 18:28

Ok effectivement c mieux mais le dernier prob pour que ce soit parfait c que je voudrais le texte en "left" mais les img en "center" so how can i do it ?? :roll:

Merci !
[ Jul ] Souviens toi que le chène majestueux proviens d'un gland ridicule !

Mammouth du PHP | 1339 Messages

12 mars 2005, 02:45

<? 
    echo $a['text_fr']."<br />\n"; 
    echo "<a href=\"".$url."\">".$lien."</a><div align=\"center\">\n"; 
    $img=$a['img']; 
    echo "<img src=\"images/".$img."\"></div>\n"; 
?> 
Pour info je me rappelle avoir deja nettoyer ton ancien code et je vois que tu t'en ai pas servi :/
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Mammouth du PHP | 19672 Messages

12 mars 2005, 18:33

Pour les problèmes de centrage; je te recommande vivement l'utilisation de styles CSS: donc tu ajoutes un attribut class="" dans tes balises <img> ou <p> (ou autres): ensuite, tu crées une feuille de style avec les paramètres d'alignement pour les différentes classes. Avantage du système: si tu veux modifier ton alignement, tu corriges juste une fois dans la feuille de style et tu as pas besoin de chercher dans le code PHP avec en plus le fait que toutes les pages affectées par cette feuille de style sera mise à jour automatiquement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: