cheloniologue Posté 17 Avril 2012 Posté 17 Avril 2012 Bonjour, Je galère grave !!! En fait j'ai un fichier php avec la fonction permettant d'afficher les dernières annonces d'un système d'annonces. Seulement voilà, j'aimerai que cela s'affiche sur un tableau a deux colonnes et je sais pas du tout du tout comment faire. Pourriez vous m'aider ? <?phpif($latestads_count){?><div class="latestposts"><div class="head"><?php echo $lang['LATEST_ADS']; ?></div><table border="0" cellspacing="0" cellpadding="0" class="postlisting" width="100%"><?php $sql = "SELECT a.*, ct.cityname, UNIX_TIMESTAMP(a.createdon) AS timestamp, feat.adid AS isfeat, COUNT(*) AS piccount, p.picfile AS picfile, scat.subcatname, scat.catid, cat.catname FROM $t_ads a INNER JOIN $t_cities ct ON a.cityid = ct.cityid INNER JOIN $t_subcats scat ON a.subcatid = scat.subcatid INNER JOIN $t_cats cat ON scat.catid = cat.catid LEFT OUTER JOIN $t_featured feat ON a.adid = feat.adid AND feat.adtype = 'A' AND feat.featuredtill >= NOW() LEFT OUTER JOIN $t_adpics p ON a.adid = p.adid AND p.isevent = '0' WHERE $visibility_condn $loc_condn GROUP BY a.adid ORDER BY a.createdon DESC LIMIT $latestads_count"; $res_latest = mysql_query($sql) or die($sql.mysql_error()); $css_first = "_first"; while($row = mysql_fetch_array($res_latest)) { $url = buildURL("showad", array($xcityid, $row['catid'], $row['catname'], $row['subcatid'], $row['subcatname'], $row['adid'], $row['adtitle']));?> <?php if($row['isfeat']) { //$feat_class = "class=\"featured\""; $feat_img = "<img src=\"images/featured.gif\" align=\"absmiddle\">"; } else { //$feat_class = ""; $feat_img = ""; } if($row['picfile']) { $picfile = $row['picfile']; $imgsize = GetThumbnailSize("{$datadir[adpics]}/{$picfile}", $tinythumb_max_width, $tinythumb_max_height); } else { $picfile = ""; } ?> <tr> <td width="15"> <img src="images/bullet.gif" align="absmiddle"> </td> <td> <b><a href="<?php echo $url; ?>" <?php echo $feat_class; ?>><?php echo $row['adtitle']; ?></a></b> <?php if(0&&$row['picfile']) { ?><img src="images/adwithpic.gif" align="absmiddle"><?php } ?> <?php echo $feat_img; ?><br> <span class="adcat"> <?php echo "$row[catname] $path_sep $row[subcatname]"; ?> <?php $loc = ""; if($row['area']) $loc = $row['area']; if($xcityid < 0) $loc .= ($loc ? ", " : "") . $row['cityname']; if($loc) echo "<br>$loc"; ?> </span> </td> <td align="right" width="<?php echo $tinythumb_max_width; ?>"> <?php if($picfile) { ?> <a href="<?php echo $url; ?>"><img src="<?php echo "{$datadir[adpics]}/{$picfile}"; ?>" border="0" width="<?php echo $imgsize[0]; ?>" height="<?php echo $imgsize[1]; ?>" style="border:1px solid black"></a> <?php } ?> </td> </tr><?php $css_first = ""; }?></table></div><?php}?>
Ernestine Posté 17 Avril 2012 Posté 17 Avril 2012 Salut, Avec ton tableau de résultats (contenant les annonces), tu fais une simple boucle for : for ($i = 0; $i < count($tonTableau); $i++) Dans chaque itération de la boucle tu fais un modulo 2 de $i (c'est à dire : $i % 2) afin de savoir si $i est pair (résultat : 0) ou impair (résultat : 1). S'il est pair : tu ouvres une nouvelle ligne et une nouvelle cellule. S'il est impair : tu crées une nouvelle cellule et tu fermes la ligne. Et lors de la dernière itération, si $i est pair, il faut penser à créer une dernière cellule vide. Ou mieux : Tu peux éviter de faire un tableau : tu fais simplement une liste <ul> / <li>. Tu crées un <li> par annonce et tu les mets en float: left. Et le <ul>, tu lui donnes une largeur double de celle des <li>. Ainsi les <li> se rangeront les uns à la suite des autres par rangées de deux.
cheloniologue Posté 17 Avril 2012 Auteur Posté 17 Avril 2012 (modifié) Oulala Ernestine ... je ne suis pas du tout à ton niveau de maitrise du langage html/php. Est ce que tu peux me donner un tuto un poil plus complet ? (j'espère que ça t'embête pas) Modifié 19 Avril 2012 par captain_torche Inutile de citer le message précédent; on vient de le lire.
Ernestine Posté 18 Avril 2012 Posté 18 Avril 2012 Un tuto pour faire un tableau ? Heu là je vois pas trop... Ton script actuel affiche les annonces dans un tableau, à raison d'une annonce par ligne, chaque ligne contenant elle-même trois cellules. Partant de là, tu as juste à adapter comme il faut. Je suis sûre que tu peux y arriver
cheloniologue Posté 18 Avril 2012 Auteur Posté 18 Avril 2012 (modifié) Non pas un nouveau tableau ...tant qu'à faire, on va utiliser celui existant :wacko: ... je serai incapable d'en faire un nouveau de toute façon. Déjà, je n'ai aucune idée de l'endroit où tu mets ta première boucle : for ($i = 0; $i < count($tonTableau); $i++) J'ai essayé de mettre le code plus clairement en mettant en rouge les appels php ... et les balises du tableau. Vraiment je bug et c'est pour ça que je viens vous demander un coup de main et surtout me faire comprendre comment et pk on fait une manip et non une autre (le but de ma démarche étant d'apprendre avec votre aide) voilà le tableau : <table border="0" cellspacing="0" cellpadding="0" class="postlisting" width="100%"><?php$sql = "SELECT a.*, ct.cityname, UNIX_TIMESTAMP(a.createdon) AS timestamp, feat.adid AS isfeat,COUNT(*) AS piccount, p.picfile AS picfile, scat.subcatname, scat.catid, cat.catnameFROM $t_ads aINNER JOIN $t_cities ct ON a.cityid = ct.cityidINNER JOIN $t_subcats scat ON a.subcatid = scat.subcatidINNER JOIN $t_cats cat ON scat.catid = cat.catidLEFT OUTER JOIN $t_featured feat ON a.adid = feat.adid AND feat.adtype = 'A' AND feat.featuredtill >= NOW()LEFT OUTER JOIN $t_adpics p ON a.adid = p.adid AND p.isevent = '0'WHERE $visibility_condn$loc_condnGROUP BY a.adidORDER BY a.createdon DESCLIMIT $latestads_count";$res_latest = mysql_query($sql) or die($sql.mysql_error());$css_first = "_first";while($row = mysql_fetch_array($res_latest)){$url = buildURL("showad", array($xcityid, $row['catid'], $row['catname'], $row['subcatid'], $row['subcatname'], $row['adid'], $row['adtitle']));?><?php if($row['isfeat']){//$feat_class = "class=\"featured\"";$feat_img = "<img src=\"images/featured.gif\" align=\"absmiddle\">";} else { //$feat_class = "";$feat_img = "";}if($row['picfile']) {$picfile = $row['picfile'];$imgsize = GetThumbnailSize("{$datadir[adpics]}/{$picfile}", $tinythumb_max_width, $tinythumb_max_height);}else {$picfile = "";}?><tr><td width="15"><img src="images/bullet.gif" align="absmiddle"></td><td><b><a href="<?php echo $url; ?>" <?php echo $feat_class; ?>><?php echo $row['adtitle']; ?></a></b> <?php if(0&&$row['picfile']) { ?><img src="images/adwithpic.gif" align="absmiddle"><?php } ?><?php echo $feat_img; ?><br><span class="adcat"><?php echo "$row[catname] $path_sep $row[subcatname]"; ?><?php $loc = "";if($row['area']) $loc = $row['area'];if($xcityid < 0) $loc .= ($loc ? ", " : "") . $row['cityname'];if($loc) echo "<br>$loc";?> </span></td><td align="right" width="<?php echo $tinythumb_max_width; ?>"><?php if($picfile) { ?><a href="<?php echo $url; ?>"><img src="<?php echo "{$datadir[adpics]}/{$picfile}"; ?>" border="0" width="<?php echo $imgsize[0]; ?>" height="<?php echo $imgsize[1]; ?>" style="border:1px solid black"></a><?php } ?></td></tr><?php$css_first = "";}?></table> Modifié 19 Avril 2012 par captain_torche
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant