Jump to content
Sign in to follow this  
cheloniologue

Afficher des annonces sur deux colonnes

Rate this topic

Recommended Posts

Bonjour,

Je galère grave :lol::lol: !!! 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 ? :oops::oops:

<?php
if($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
}
?>

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 ? :wub:

(j'espère que ça t'embête pas)

Edited by captain_torche
Inutile de citer le message précédent; on vient de le lire.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Non pas un nouveau tableau ...tant qu'à faire, on va utiliser celui existant :wacko: :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.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>

Edited by captain_torche

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...