Version complète: sur le forum Webmaster Hub : Mise en forme des resultats
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Gribouille26
Salut,

J'affiche, dans une page, des images provenant d'une bdd (les url, du moins) de la manière suivante:
CODE
if ($result) {
 while ($ligne = mysql_fetch_object($result)) {
   echo "<img src=\"http://www.monsite.com/".$ligne->url_icone."\">";
}
}

Ca marche très bien, mais tout s'affiche collé !!
D'où ma question:
Comment mettre un espace entre chaque icones ? huh.gif

Gribouille
sarc
CODE
if ($result) {
while ($ligne = mysql_fetch_object($result)) {
  echo "<img src=\"http://www.monsite.com/".$ligne->url_icone."\"> ";
}
}


Mettre un espace après la balise non ? Ou avant, au choix tongue.gif
Gribouille26
Merci Sarc !
C'était bête comme chou.... blush.gif

Mais plus dur, maintenant !
Comment decider de les afficher... 4 sur une ligne, par exemple ?

Gribouille
sarc
CODE
$compteur = 1;

if ($result)
{
while ($ligne = mysql_fetch_object($result))
{
  echo "<img src=\"http://www.monsite.com/".$ligne->url_icone."\"> ";
  $test = $compteur/4;
  if ($test == round($test)) echo "<br>";
  $compteur++;
}
}


Je ne sais pas s'il existe une fonction pour vérifier qu'un nombre est multiple d'un autre ?
Moi en tout cas, je fais la division de compteur par 4. Si le résultat est égal à son entier arrondi, alors c'est que compteur est un multiple de 4... Euh, jsuis pas sur de me faire comprendre tongue.gif.
Exemple par la pratique :

Si compteur = 7 alors compteur/4 = 1,75
Or l'arrondi de compteur/4 = 2

Donc compteur n'est pas un multiple de 4
Alors que si compteur = 8, compteur/4=2 et l'arrondi de 2=2 donc compteur est un multiple de 4...

Ca se transforme en cours de logique mathématique... Jme prends peut-être la tête quand je fais ça, les connaisseurs en PHP ?

Enfin bref, ça fait que à chaque fois que compteur sera un multiple de 4, il affichera un <br> pour que ça passe à la ligne biggrin.gif
Anonymus
Il peut y avoir plus simple :
CODE
$compteur=0;
if ($result)
{
while ($ligne = mysql_fetch_object($result))
{

if ($compteur==4){
$compteur=0;
echo"<br>";
}
$compteur++;
etc...


(avec des additions, ca le fait 'plus' whistling.gif )

Anonymus.
sarc
oui, ça le fait plus, mais.. [edit] J'ai rien à dire pour le mais [/edit]
C'est vrai, jme prends la tête, mais bon, j'aime bien biggrin.gif et puis parfois je fais limite plus complexe, c'est pour ça tongue.gif
Gribouille26
Merci.

J'ai compris la première explication de Sarc, mais pas le deuxième solution d'Anonymus.... blush.gif
Tu n'affiche qu'un <br>. Alors j'ai essayer en mettant un "else affiche l'image", mais pas glorieux...

Pourrais-tu m'expliquer Anonymus ? stp

Gribouille
sarc
CODE
$compteur=0;
if ($result)
{
while ($ligne = mysql_fetch_object($result))
{

if ($compteur==4)
{
$compteur=0;
echo"<br>";
}
$compteur++;
echo "<img src=\"http://www.monsite.com/".$ligne->url_icone."\"> ";
}
}


Voilà la solution d'anonymus... Si le compteur est à 4, tu rajoutes un <br>, et tu remets le compteur à 0, voilà son truc à lui (c'est trop simple, j'aime pas lol)...
Voili voilà wink.gif
Gribouille26
D'accord, merci, Sarc.

Donc pas besoin de else ou de else if.... biggrin.gif
Et le $compteur++; ajoute 1.

Ce qui est étrange, c'est que ça ne marche que à partir de la troisième ligne !
Les deux premières ont une image de moins que le nombre demandé... blink.gif

Gribouille
sarc
Tu es sûre de toi ? Fais voir l'url, c'est surprenant tongue.gif lol
Jveux bien que PHP soit pas parfait, car la perfection n'existe pas, mais il sait compter de 0 à 4 je pense !! biggrin.gif
Gribouille26
ici.
J'ai mis 6.

Gribouille
sarc
mets
CITATION
echo "<img src=\"http://www.monsite.com/".$ligne->url_icone."\"> \n";


à la place de celle d'avant, pour que ta source soit plus jolie tongue.gif

S'il y a moins d'images, c'est que certaines, comme la 0007, n'existent pas... wink.gif
Gribouille26
Effectivement cher Watson !!
Vous êtes un excellent détéctive !!

Mais ce n'est pas la 5 mais la 3 et la 7 qui ont disparues.
Je vais m'allumer une pipe et débuter l'enquète sur cette etrange disparition....ph34r.gif

Merci Sarc et Anonymus de votre aide. :up:

Gribouille
Gribouille26
CITATION(sarc @ jeudi 21 avril 2005, 18h01)
mets
à la place de celle d'avant, pour que ta source soit plus jolie tongue.gif
*

Je ne comprend pas trop ou mettre ça ...
Il sert à quoi ce /n ? huh.gif

Gribouille
sarc
ce n'est pas /n mais \n wink.gif

Jte conseillais de le mettre à la fin de la ligne ou tu affiches l'image.. En fait, ça sert à passer à la ligne dans ta source, pour que tu puisses regarder ton code source plus facilement. La, si tu le regardes, toutes les images sont sur la même ligne, et donc tu avais du mal à compter le nombre d'images avant le premier <br>...
Si tu mets le \n à la fin de ta ligne, il passera à la ligne dans ta source, et ce sera une souce plus lisible lol...

Enfin, rien de très important wink.gif
Gribouille26
D'accord, j'ai compris.
C'est juste pour pouvoir lire le code plus facilement. Pour qu'il soit plus clair. biggrin.gif

Merci de l'astuce, Sarc. wink.gif

Gribouille
Anonymus
CITATION(Gribouille26 @ jeudi 21 avril 2005, 19h09)
D'accord, j'ai compris.
C'est juste pour pouvoir lire le code plus facilement. Pour qu'il soit plus clair. biggrin.gif

Merci de l'astuce, Sarc.  wink.gif

Gribouille
*

(loin de moi l'idée de démoraliser Sarc biggrin.gif )

Tu peux utiliser le \n, autrement dit le retour à la ligne pour avoir un code source plus lisible, mais tu peux aussi utiliser d'autres caractères, comme la tabulation :\t

Ainsi :
CODE
echo "<table>";
echo "<tr>";
echo "<td>";
echo "coucou";
echo "</td>";
echo "</tr>";
echo "</table>";

c'est joli, mais quand on regarde le code source, il tient sur une seule ligne.. ca fait désordre (et ce n'est pas évident pour repérer les éventuelles erreurs..

Par contre :
CODE
echo "<table>\n";
echo "\t<tr>\n";
echo "\t\t<td>\n";
echo "\t\t\tcoucou\n";
echo "\t\t</td>\n";
echo "\t</tr>\n";
echo "</table>\n";

c'est plus compliqué ? pas forcément. En tout ca, le code source est... nickel wink.gif

Anonymus.
sarc
Loin de moi l'idée de te contredire Anonymus (héhé, chacun son tour d'embêter l'autre) mais le code source ne sert qu'à un navigateur à la base, pas au visiteur, si ? Le visiteur n'a pas a le regarder normalement, pour naviguer sur le site...
Le \n que je conseillais, c'était plus un aspect pratique pour Gribouille, pour qu'elle compte son nombre d'images et qu'elle voit ce qui va pas, que pour rendre le code source "joli" ou "nickel" comme tu dis, avec des tabulations au bon endroit tongue.gif

Tous ces espaces, en plus, ce sont des octets en trop à mon goût... Je suis pas pour une suroptimisation des pages, mais pas non plus pour mettre des grands blancs dans le code tongue.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.