Aller au contenu

Sujets conseillés

Posté

Salut,

J'affiche, dans une page, des images provenant d'une bdd (les url, du moins) de la manière suivante:

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:

Gribouille

Posté

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 :P

Posté

Merci Sarc !

C'était bête comme chou.... :blush:

Mais plus dur, maintenant !

Comment decider de les afficher... 4 sur une ligne, par exemple ?

Gribouille

Posté

$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 :P.

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 :D

Posté

Il peut y avoir plus simple :

$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: )

Anonymus.

Posté (modifié)

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 :D et puis parfois je fais limite plus complexe, c'est pour ça :P

Modifié par sarc
Posté

Merci.

J'ai compris la première explication de Sarc, mais pas le deuxième solution d'Anonymus.... :blush:

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

Posté

$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à ;)

Posté

D'accord, merci, Sarc.

Donc pas besoin de else ou de else if.... :D

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:

Gribouille

Posté

Tu es sûre de toi ? Fais voir l'url, c'est surprenant :P lol

Jveux bien que PHP soit pas parfait, car la perfection n'existe pas, mais il sait compter de 0 à 4 je pense !! :D

Posté

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:

Merci Sarc et Anonymus de votre aide. :up:

Gribouille

Posté
mets

à la place de celle d'avant, pour que ta source soit plus jolie :P

<{POST_SNAPBACK}>

Je ne comprend pas trop ou mettre ça ...

Il sert à quoi ce /n ? :huh:

Gribouille

Posté

ce n'est pas /n mais \n ;)

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 ;)

Posté
D'accord, j'ai compris.

C'est juste pour pouvoir lire le code plus facilement. Pour qu'il soit plus clair. :D

Merci de l'astuce, Sarc.  ;)

Gribouille

<{POST_SNAPBACK}>

(loin de moi l'idée de démoraliser Sarc :D )

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 :

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 :

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 ;)

Anonymus.

Posté

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 :P

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 :P

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...