Gribouille26 Posté 20 Avril 2005 Posté 20 Avril 2005 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 ? Gribouille
Sarc Posté 20 Avril 2005 Posté 20 Avril 2005 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
Gribouille26 Posté 20 Avril 2005 Auteur Posté 20 Avril 2005 Merci Sarc ! C'était bête comme chou.... Mais plus dur, maintenant ! Comment decider de les afficher... 4 sur une ligne, par exemple ? Gribouille
Sarc Posté 20 Avril 2005 Posté 20 Avril 2005 $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 . 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
Anonymus Posté 20 Avril 2005 Posté 20 Avril 2005 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' ) Anonymus.
Sarc Posté 20 Avril 2005 Posté 20 Avril 2005 (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 et puis parfois je fais limite plus complexe, c'est pour ça Modifié 20 Avril 2005 par sarc
Gribouille26 Posté 21 Avril 2005 Auteur Posté 21 Avril 2005 Merci. J'ai compris la première explication de Sarc, mais pas le deuxième solution d'Anonymus.... 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 Posté 21 Avril 2005 Posté 21 Avril 2005 $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à
Gribouille26 Posté 21 Avril 2005 Auteur Posté 21 Avril 2005 D'accord, merci, Sarc. Donc pas besoin de else ou de else if.... 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é... Gribouille
Sarc Posté 21 Avril 2005 Posté 21 Avril 2005 Tu es sûre de toi ? Fais voir l'url, c'est surprenant lol Jveux bien que PHP soit pas parfait, car la perfection n'existe pas, mais il sait compter de 0 à 4 je pense !!
Sarc Posté 21 Avril 2005 Posté 21 Avril 2005 (modifié) mets echo "<img src=\"http://www.monsite.com/".$ligne->url_icone."\"> \n"; à la place de celle d'avant, pour que ta source soit plus jolie S'il y a moins d'images, c'est que certaines, comme la 0007, n'existent pas... Modifié 21 Avril 2005 par sarc
Gribouille26 Posté 21 Avril 2005 Auteur Posté 21 Avril 2005 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.... Merci Sarc et Anonymus de votre aide. Gribouille
Gribouille26 Posté 21 Avril 2005 Auteur Posté 21 Avril 2005 metsà la place de celle d'avant, pour que ta source soit plus jolie <{POST_SNAPBACK}> Je ne comprend pas trop ou mettre ça ... Il sert à quoi ce /n ? Gribouille
Sarc Posté 21 Avril 2005 Posté 21 Avril 2005 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
Gribouille26 Posté 21 Avril 2005 Auteur Posté 21 Avril 2005 D'accord, j'ai compris. C'est juste pour pouvoir lire le code plus facilement. Pour qu'il soit plus clair. Merci de l'astuce, Sarc. Gribouille
Anonymus Posté 21 Avril 2005 Posté 21 Avril 2005 D'accord, j'ai compris.C'est juste pour pouvoir lire le code plus facilement. Pour qu'il soit plus clair. Merci de l'astuce, Sarc. Gribouille <{POST_SNAPBACK}> (loin de moi l'idée de démoraliser Sarc ) 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.
Sarc Posté 21 Avril 2005 Posté 21 Avril 2005 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 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant