Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1616 connectés 

 


Dernière réponse
Sujet : [MySQL] Requête assez compliquée
gizmo Enfin! donc si j'ai bien compris tu veux faire une requete qui te sort l'article qui comprend les mots "hisoire" ET "code"
 
Dans ce cas

Code :
  1. SELECT news.news FROM news,search AS S1, search AS S2 WHERE news.id=S1.id AND S1.keyword='histoire' AND S2.keyword='codes' AND S1.id=S2.id


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
gizmo Enfin! donc si j'ai bien compris tu veux faire une requete qui te sort l'article qui comprend les mots "hisoire" ET "code"
 
Dans ce cas

Code :
  1. SELECT news.news FROM news,search AS S1, search AS S2 WHERE news.id=S1.id AND S1.keyword='histoire' AND S2.keyword='codes' AND S1.id=S2.id

Dost67 Au départ j'ai des mots clés dans un champs texte HTML. Puis traitement PHP pour faire ressortir les truc intéressants... Ensuite la requête. --> C'est un moteur de recherche.
 
Bon je dois partir. Pour le JOIN j'essaierai ce soir mais j'ai cru entendre que c'était un peu lourd à faire ce type de requête ?
gizmo Rhaaa! mais tu dis toujours pas ce que tu as au départ comme paramètre et ce que tu veux au final!
Sh@rdar SELECT ... WHERE (search.keyword = 'keyword' OR search.code='code') LEFT JOIN on search.id = news.id
 
ça devrait donner ça non ?
 
histoire |   1  | Mon texte 1 |
code     |   1  | Mon texte 1 |
Dost67 Bon j'ai l'impression que c'est toujours pas clair alors je fais le début de requête et je mets entre crochet ce que je ne sais pas faire :
 
SELECT news.texte FROM news, search WHERE (search.keyword='histoire' OR search.keyword='code') AND [id de 'histoire' == id de 'code'] AND news.id=search.id
Dost67 En fait dans mon cas je fais une recherche sur keyword='histoire' AND keyword='code', je veux qu'il me sorte 'Mon texte 1'.
Dost67 OK, donc les tables :

Code :
  1. Dans la table search :
  2. Colonnes : keyword      |    id
  3. -------------------------------
  4. Ligne 1 :  histoire     |    1
  5. Ligne 2 :  code         |    1
  6. Ligne 3 :  histoire     |    2
  7. Dans la table news :
  8. Colonnes : id        |     texte
  9. --------------------------------
  10. Ligne 1 :  1         |   Mon texte 1
  11. Ligne 2 :  2         |   Mon texte 2
  12. Ligne 3 :  3         |  etc...


 
Ce que je souhaite (je le fais en Français) :
Etape 1 : Sélectionner id de la table search tel que keyword='histoire' et keyword='code'  mais aussi que 'histoire' et 'code' aient le même id
Etape 2 : Sélectionner texte dans la table news tel que search.id_récupéré_avant=news.id

 

[jfdsdjhfuetppo]--Message édité par Dost67--[/jfdsdjhfuetppo]

gizmo c'est pas clair ce que tu veux, tu peux préciser les infos dont tu disposes avant de faire ta requete?
Dost67 Voici ma table (search) :
Colonnes :   keyword    id
            histoire    10
            codes       10
            histoire    11
 
Le champs ID me sert à faire une jointure avec une autre table (news)... Quand je fais ça :

Code :
  1. SELECT DISTINCT news.news FROM news, search WHERE (search.keyword='histoire' OR search.keyword='codes') AND news.num=search.id


 
Le problème c'est qu'il va me sortir les 3 mots-clés ci-dessus or je ne voudrais que ceux qui ont le même ID. Par exemple comment demander

Code :
  1. 'histoire' et 'code' sachant que ces deux mots doivent avoir le même ID et que search.id == news.num

?
 
Merci d'avance.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR