Bonjour,
après avoir passer des heures à essayer de trouver une solution, je fais appel à vous pour me donner le déclic. Je débute dans la programmation php et je n'ai peut-être pas encore les bons réflexes.
Je développe une page qui contient des actus (j'ai une table news avec id_news, titre, date... + une image (cette image est l'affiche de l'évènement) j'ai également une table contenant une ou plusieurs autres images concernant les news (image_news avec id_img, img_titre, description, id_news)
L'idée est que sur la page actu du site apparaisse les 5 dernières news postées de la manières suivante :
titre date heure
description
img1 img2 img3 img4
img5 img6.... (éventuellement dans un tableau ?)
Faut-il faire une jointure ? sauf que si je fais une jointure (LEFT OUTER JOIN $TBL_images ON $TBL_NEWS.id_news=$TBL_images.id_news");), la news se répète autant de fois que j'ai d'images...
ou faut-il à l'intérieur de mon actu faire une requête appelant la table image_news et dans ce cas comment appelé l'id_news en cours ?
Je vous remercie par avance des informations que vous pourrez m'apporter, au moins si vous me dite comment procéder je pourrais chercher les bonnes réponses.
pour le moment j'ai fais cette requête pour les news qui fonctionne.
$req = MYSQL_QUERY("SELECT * FROM $TBL_NEWS ORDER BY date_verif DESC LIMIT 0, 4");
$res = MYSQL_NUM_ROWS($req);
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td><?
$i=0;
WHILE($i!=$res)
{
$id_news = mysql_result($req,$i,"id_news");
$titre = stripslashes(trim(mysql_result($req,$i,"titre")));
$date = mysql_result($req,$i,"date");
$heure = mysql_result($req,$i,"heure");
$signature = stripslashes(trim(mysql_result($req,$i,"signature")));
$email_sign = mysql_result($req,$i,"email_sign");
$news = stripslashes(trim(mysql_result($req,$i,"news")));
$heure = str_replace(":","h",$heure);
if($i==0){ $titre = "<a name=\"TOP\">$titre</a>"; }
?>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="100%"><font style="<? echo $CorpsNews; ?>"><? echo "$IMAGE <p style=\"text-align: justify\">$news</p>"; ?></font></p>
</td>
</tr>
<tr>
<td width="100%">
</td>
</tr>
<tr>
<td height="15">
<!--images : ici je voudrais afficher la ou les images-->
</td>
</tr>
<tr>
<td width="100%" height="15"> </td>
</tr>
<tr>
<td width="100%" align="right">
<!-- là j'ai une ligne pour les COMMENTAIRES -->
</td>
</tr>
</table>
<?
$i++;
}
?></td>
</tr>
</table>
après avoir passer des heures à essayer de trouver une solution, je fais appel à vous pour me donner le déclic. Je débute dans la programmation php et je n'ai peut-être pas encore les bons réflexes.
Je développe une page qui contient des actus (j'ai une table news avec id_news, titre, date... + une image (cette image est l'affiche de l'évènement) j'ai également une table contenant une ou plusieurs autres images concernant les news (image_news avec id_img, img_titre, description, id_news)
L'idée est que sur la page actu du site apparaisse les 5 dernières news postées de la manières suivante :
titre date heure
description
img1 img2 img3 img4
img5 img6.... (éventuellement dans un tableau ?)
Faut-il faire une jointure ? sauf que si je fais une jointure (LEFT OUTER JOIN $TBL_images ON $TBL_NEWS.id_news=$TBL_images.id_news");), la news se répète autant de fois que j'ai d'images...
ou faut-il à l'intérieur de mon actu faire une requête appelant la table image_news et dans ce cas comment appelé l'id_news en cours ?
Je vous remercie par avance des informations que vous pourrez m'apporter, au moins si vous me dite comment procéder je pourrais chercher les bonnes réponses.
pour le moment j'ai fais cette requête pour les news qui fonctionne.
$req = MYSQL_QUERY("SELECT * FROM $TBL_NEWS ORDER BY date_verif DESC LIMIT 0, 4");
$res = MYSQL_NUM_ROWS($req);
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td><?
$i=0;
WHILE($i!=$res)
{
$id_news = mysql_result($req,$i,"id_news");
$titre = stripslashes(trim(mysql_result($req,$i,"titre")));
$date = mysql_result($req,$i,"date");
$heure = mysql_result($req,$i,"heure");
$signature = stripslashes(trim(mysql_result($req,$i,"signature")));
$email_sign = mysql_result($req,$i,"email_sign");
$news = stripslashes(trim(mysql_result($req,$i,"news")));
$heure = str_replace(":","h",$heure);
if($i==0){ $titre = "<a name=\"TOP\">$titre</a>"; }
?>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="100%"><font style="<? echo $CorpsNews; ?>"><? echo "$IMAGE <p style=\"text-align: justify\">$news</p>"; ?></font></p>
</td>
</tr>
<tr>
<td width="100%">
</td>
</tr>
<tr>
<td height="15">
<!--images : ici je voudrais afficher la ou les images-->
</td>
</tr>
<tr>
<td width="100%" height="15"> </td>
</tr>
<tr>
<td width="100%" align="right">
<!-- là j'ai une ligne pour les COMMENTAIRES -->
</td>
</tr>
</table>
<?
$i++;
}
?></td>
</tr>
</table>