detail d'une requete mysql

pingoo
Invité n'ayant pas de compte PHPfrance

23 juin 2005, 23:52

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:

Eléphant du PHP | 64 Messages

24 juin 2005, 02:21

Bonjour,
qu'appelles-tu détails ? Je ne saisis pas trop ...

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

24 juin 2005, 09:58

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).
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

pingoo
Invité n'ayant pas de compte PHPfrance

24 juin 2005, 23:15

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:

Mammouth du PHP | 19672 Messages

24 juin 2005, 23:49

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" ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

pingoo
Invité n'ayant pas de compte PHPfrance

25 juin 2005, 08:59

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:

Mammouth du PHP | 19672 Messages

25 juin 2005, 09:08

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 ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

pingoo
Invité n'ayant pas de compte PHPfrance

25 juin 2005, 09:38

Je vais essayer.
Merci beaucoup :D

pingoo
Invité n'ayant pas de compte PHPfrance

25 juin 2005, 10:06

Génial. Ca marche, merci beaucoup pour votre aide :D