eviter la redondance

Mammouth du PHP | 536 Messages

22 mai 2006, 13:54

bonjour tout le monde, voila, je voudrais faire un affichage par catégorie de certaines informations. Je fais d'abord une requete sql pour récupérer les informations (uniquement le titre qui pointera vers l'intitulé en entier et l'information en entier (ici le titre de chaue information fait office de lien vers l'intitulé de l'iinformation). Voici mon code pour cela :
//Premiere Page

//requete SQL
$sql = "SELECT id, poste FROM `offre_emploi` GROUP BY poste" ;
$req = mysql_query($sql);
//Boucle d'affichage des liens qui affiche le titre est envoie l'id
while ($affichage = mysql_fetch_array($req)){ ?>
<p class="Texte"><a href="poste2.php?id=<? echo $affichage[0]; ?>"><font color="black"><? echo $affichage['poste']; ?>
Après, j'arrive sur la seconde page qui affiche l'intitulé de l'information :

<?php


$db = mysql_connect("localhost", "root");
mysql_select_db("hippolyte",$db);


////////////////////////
//Deusieme Page//
///////////////////////
//Recupération de l'id envoyer par page1
$id = $_GET['id'] ;
//requete sql
$sql = "SELECT * FROM `offre_emploi` WHERE id='$id'" ;
$req = mysql_query($sql);
// affichage des informations
$affichage = mysql_fetch_row($req);
echo "<p class=\"Texte\"><font color=\"red\">Nom de l'entreprise : </font><br></p><p class=\"Texte2\">".$affichage[1]."</p><p class=\"Texte\"><font color=\"red\">Poste à pourvoir : </font></p><p class=\"Texte2\">".$affichage[4]."</p><p class=\"Texte\"><font color=\"red\">Intitulé de l'offre : <br></font></p><p class=\"Texte2\">".$affichage[5]."</p><p class=\"Texte\"><br>Pour tout renseignement, ou pour répondre à cette offre, veuillez contacter : <br><br></p><p class=\"Texte2\">".$affichage[2]."<br><a href=\"mailto:".$affichage[3]."\">".$affichage[3]."</a></p>";

mysql_close($db);
?>
Mon probleme maintenant, est que j'aimeraiais qu'on affiche plusieurs informations lorsque le titre est le meme. Je voudrais que le titre qui est en fait un lien redirige vers toutes les informations qui ont le meme titre pour qu'il n'y ai pas d'informations redondantes dans la premiere page.

Comment faire?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Mammouth du PHP | 536 Messages

22 mai 2006, 14:04

Peut-on peut être utilisé la fonction while par exemple ou une autre boucle mais dans ce cas, si cela est possible, comment l'utiliser et où?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Mammouth du PHP | 536 Messages

22 mai 2006, 16:03

personne pour m'aider? :cry:
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Eléphant du PHP | 96 Messages

22 mai 2006, 16:13

Salut béka,

Peux tu préciser ta demande, tu veux à partir d'un lien toutes les infos ou que plusieurs liens s'affiche avec chacun ses propres infos ?

lien 1 : titre1 (1 page avec peut etre le lien vers lien2)
lien 2 : titre1 (1 autre page avec peut etre le lien vers lien1)

ou

lien : titre1 - titre1 (affichage des 2 titres dans 1 page )
-==@ Tessaï @==-

Mammouth du PHP | 536 Messages

22 mai 2006, 16:20

en fait voila, je fais un site qui propose de déposer des offres d'emploi
Et donc dans ce cas, il est possible qu'il y ait plusieurs postes à pourvoir identiques et à ce moment je voudrais savoir comment faire pour afficher TOUS les intitulés des offres d'emploi correspondant au meme titre (le champ poste à pourvoir)

En fait : titre 1 -> redirige vers offre 1, offre 2, offre 45...

Est-ce plus clair?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Eléphant du PHP | 96 Messages

22 mai 2006, 16:32

Perso j'affinerais ma requete SQL avec un LIKE :

Genre :
$debut = "prendrait les x premières lettres de ton titre avec un ereg sur le nom de ton titre"
SELECT id, poste FROM `offre_emploi` WHERE poste like ’$debut%’
Je n'ai jamais testé le "$debut%’" je ne sais pas si ça peut fonctionner mais c'est une voie à suivre non ? :-k
-==@ Tessaï @==-

Mammouth du PHP | 536 Messages

22 mai 2006, 16:38

le probleme c'est que je ne connais pas les titres, ce sont d'autres utilisateurs qui les saisissent. Je ne connais qu'une chose, c'est l'id.
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Eléphant du PHP | 96 Messages

22 mai 2006, 16:43

Tu n'as pas vraiment besoin de les connaitres...

Avec la fonction ereg_replace tu peux prendre les x premiers caractères de ton champ titre que tu utilises dans ta query.

Tu vois vers quoi je veux aller ?
-==@ Tessaï @==-

Mammouth du PHP | 536 Messages

22 mai 2006, 16:47

non je vois pas exactement ton raisonnement...
As tu bien compris mon raissonement?
peux-tu m'expliquer la solution que tu me propose?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Eléphant du PHP | 96 Messages

22 mai 2006, 16:52

Heu en fait je crois que je me suis emballé un peu avec mes ereg_replace...

On peut faire plus simple :lol:
$titre = 'poste2.php?id=<? echo $affichage[0]; ?>';
SELECT id, poste FROM `offre_emploi` WHERE poste like ’$titre’
ça devrait aller mieux non ?
-==@ Tessaï @==-

Mammouth du PHP | 536 Messages

22 mai 2006, 16:55

comme ca nom car afffichage[0] correspond a l'id dans ma table
Et tous les id sont différents, donc j'aurais toujours de la redondance..
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Eléphant du PHP | 96 Messages

23 mai 2006, 09:46

Re béka,

Bon j'ai un peu plus de temps là :)

Premier problème : tu n'es pas maitre de ce que les gens mettent dans ta base de donnée, difficile donc de faire un tri par titre vu qu'ils peuvent différencier, juste ?

Donc il faudrait que tu crées des catégories afin de pouvoir utiliser un critère de recherche fiable.

Est-ce possible ?
-==@ Tessaï @==-

Mammouth du PHP | 536 Messages

23 mai 2006, 10:38

ben en fait je ne peux guere faire un tri. Car ce que les gens vont saisir c'est l'intitulé du poste a pourvoir (ex commercial, chargé d'affaire..).
Mais il est possible que deux entreprise cherche un commercial et dans ce cas je ne voudrais pas que commercial apparaissent deux fois mais je voudrais que cela n'apparraisse qu'une seule fois et que quand on clique desus, on affiche les DEUX offres.
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!

Eléphant du PHP | 96 Messages

23 mai 2006, 10:53

Le soucis est que les personnes mettant ces offres en ligne peuvent utiliser des intitulés différents... ne fut-ce qu'au niveau de la casse...

Commercial
commercial
Commercial Junior
comercial junior vetement
commercial bijoux senior
....

D'ou la nécessité de standardisé les possibilités.

Sinon c'est toujours faisable mais tu te lances dans qqchose d'assez complexes au niveau programmation vu que tu dois faire un recherche sur un terme précis (ici commercial) mais qui peut se trouver n'importe ou dans le titre...
Et là c'est hors de mes compétences désolé... ça prendrait bien trop de temps :oops:
-==@ Tessaï @==-

Mammouth du PHP | 536 Messages

23 mai 2006, 10:56

et donc admettons, j'offre la possibilté de choisir le poste a pourvoir dans un menu déroulant. Après ca devient beaucoup plus simple c'est sur, car le probleme se solutionnerai a partir de ma requete SQL non?
Un prof désespéré à son élève :
- Et maintenant, dessinez-moi un cercle au tableau... Voila... Alors qu'est-ce que c'est?
- Ben un cercle ?
- Non, c'est votre note, sortez !!