Aller au contenu

Afficher des annonces sur deux colonnes


Sujets conseillés

Posté

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
}
?>

Posté

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.

Posté (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 ? :wub:

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

Modifié par captain_torche
Inutile de citer le message précédent; on vient de le lire.
Posté

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

Posté (modifié)

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>

Modifié par captain_torche

Veuillez vous connecter pour commenter

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



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