Page 1 sur 1

detail d'une requete mysql

Posté : 23 juin 2005, 23:52
par pingoo
Bonjour à tous,
mon problème est le suivant : :oops:
J'ai une page sur laquel j'affiche les résultats d'une requete avec titre et début de texte.
Ce que je cherche c'est de pouvoir afficher le detail de cette requete en cliquant sur le titre.

Merci pour votre aide :lol:

Posté : 24 juin 2005, 02:21
par milooser
Bonjour,
qu'appelles-tu détails ? Je ne saisis pas trop ...

Posté : 24 juin 2005, 09:58
par mere-teresa
Fais un lien sur le titre et le lien pointera vers un programme qui refera une requête si tu ne veux pas les mêmes données...
Sinon regarde les systèmes de cacher/dévoiler en CSS et Javascript (si les données sont déjà chopées par ta première requête).

Posté : 24 juin 2005, 23:15
par pingoo
Merci pour votre aide.

Voici mon code.
$select = "SELECT secteur_activite, fonction, societe, DATE_FORMAT(date, '%d.%m.%y') date, SUBSTRING(profil_rechercher,1,200) AS profil_rechercher FROM fk_offre_emploi ";
$select1 = "SELECT secteur_activite, fonction, societe, DATE_FORMAT(date, '%d.%m.%y') date, SUBSTRING(profil_rechercher,1,200) AS profil_rechercher FROM fk_offre_emploi where secteur_activite LIKE '$secteur_activite%' ";
if ($secteur_activite == "indifférent" ) {
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );	
} else {
$result = mysql_query($select1) or die ('Erreur : '.mysql_error() );	
}
$total = mysql_num_rows($result);
echo'
<table width="750" border="0" align="center" summary="">
	<tr>
		<td align="right">
		<font color="RED"><b>'.$total.' offre(s)</b> correspond(ent) à votre recherche.<br></font>
		</td>
	</tr>
</table>
';
// si on a récupéré un résultat on l'affiche.
if($total) 
{ 
    // debut du tableau 
?>
<table width="750" align="center" border="0" cellpadding="3" cellspacing="1" summary="" bgcolor="#FFFFFF"> 
  <tr height="5"> 
    <td bgcolor="#05A9CC" width="400" height="5"><b>Poste/Fonction</b></td> 
    <td bgcolor="#69BFCC" height="5" align="center"><b>Société</b></td> 
    <td bgcolor="#81CCCC" height="5" align="center"><b>Paru le</b></td> 
  </tr> 
    <?php 
    /* On crée un pointeur pour l'alternance de coleur de fond */ 
    $c = 0; 
    while($row = mysql_fetch_array($result)) 
    { 
        /* Si le pointeur est pair, couelur de fond blanc, impair bleu */ 
        $couleur = ($c % 2 == 0) ? "#ffffff":"#E4F2FF"; 
        ?> 
  <tr> 
    <td bgcolor="<?php echo($couleur); ?>" width="400"> 
      <b><?php echo($row["fonction"]); ?></a></b><br> 
      <?php echo($row["profil_rechercher"]); ?>&nbsp;<a href="">...<u>Lire la suite</u>...</a>
    </td> 
    <td bgcolor="<?php echo($couleur); ?>" align="center" valign="top"><b><u><?php echo($row["societe"]); ?></b></u></td> 
    <td bgcolor="<?php echo($couleur); ?>" align="center" valign="top"><font color="#0000ff"><b><?php echo ($row["date"]); ?></b></font></td> 
  </tr> 
        <?php 
        /* On oublie pas d'incrémenter le pointeur */ 
        $c++; 
    } 
?> 
</table> 
<?php 
// fin du tableau. 
} 
Je sais il est digne du débutant que je suis. :oops:
Ce que je veut c'est que lorsque l'on clique sur la fonction cela m'affiche le détail de l'offre...

Merci beaucoup pour votre aide :lol:

Posté : 24 juin 2005, 23:49
par Cyrano
Je suis pas très sûr de bien comprendre ta demande, mais tu peux simplifier les premières lignes de ton code :
<?php
$select  = "SELECT secteur_activite, fonction, societe, DATE_FORMAT(date, '%d.%m.%y') date, SUBSTRING(profil_rechercher,1,200) AS profil_rechercher FROM fk_offre_emploi ";
if ($secteur_activite != "indifférent" ) 
{
    $select .= "where secteur_activite LIKE '". $secteur_activite ."%' ";
}
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
?>
<table width="750" border="0" align="center" summary="">
    <tr>
        <td align="right">
        <font color="RED"><b><?php echo($total); ?> offre(s)</b> correspond(ent) à votre recherche.<br></font>
        </td>
    </tr>
</table>
Ce que je saisis mal, c'est comment tu fais pour "cliquer sur une fonction" ;)

Posté : 25 juin 2005, 08:59
par pingoo
Merci pour la simplification.
ce que j'aimerais c'est afficher un apercu de mon texte :
    <?php 
    /* On crée un pointeur pour l'alternance de coleur de fond */ 
    $c = 0; 
    while($row = mysql_fetch_array($result)) 
    { 
        /* Si le pointeur est pair, couelur de fond blanc, impair bleu */ 
        $couleur = ($c % 2 == 0) ? "#ffffff":"#E4F2FF"; 
        ?> 
  <tr> 
    <td bgcolor="<?php echo($couleur); ?>" width="400"> 
      <b><?php echo($row["fonction"]); ?></a></b><br> 
      <?php echo($row["profil_rechercher"]); ?>&nbsp;<a href="">...<u>Lire la suite</u>...</a>
    </td> 
    <td bgcolor="<?php echo($couleur); ?>" align="center" valign="top"><b><u><?php echo($row["societe"]); ?></b></u></td> 
    <td bgcolor="<?php echo($couleur); ?>" align="center" valign="top"><font color="#0000ff"><b><?php echo ($row["date"]); ?></b></font></td> 
  </tr> 
        <?php 
        /* On oublie pas d'incrémenter le pointeur */ 
        $c++; 
    } 
?> 
Lorsque l'on clique sur 'lire la suite' ou sur la 'fonction' cela m'affiche le détail.
C'est comme les petites annonces. Vous avez les annonces sur une page et le détail lorsque l'on click sur celle de son choix.
Je sais pas si je suis très clair, en bref c'est le meme principe que les petites annonces style ebay.
Merci pour votre aide :lol:

Posté : 25 juin 2005, 09:08
par Cyrano
Alors il faut que tu ajoutes un paramètre que tu dois récupérer dans ta requête pour modifier cette ligne
<?php echo($row["profil_rechercher"]); ?>&nbsp;<a href="">...<u>Lire la suite</u>...</a> 
Il faut que tu mettes l'adresse d'affichage de la page détaillée avec en paramètre l'identifiant de l'article.

Par exemple, tu as une ligne affichant l'extrait de l'article dont l'identifiant est 12, alors ton lien doit ressembler à:
<?php echo($row["profil_rechercher"]); ?>&nbsp;<a href="./detail.php?art=12">...<u>Lire la suite</u>...</a> 
Dans ta page détaillée (que j'ai nommée ici detail.php) il te faut donc une requête qui récupère tout ce qui concerne l'article 12 que tu récupères en début avec
$art = $_GET['art'];
Ensuite ta requête aura une clause WHERE:

Code : Tout sélectionner

SELECT ..... WHERE `id_art` = ". $art .";
Est-ce que ça te parait clair comme explication ?

Posté : 25 juin 2005, 09:38
par pingoo
Je vais essayer.
Merci beaucoup :D

Posté : 25 juin 2005, 10:06
par pingoo
Génial. Ca marche, merci beaucoup pour votre aide :D