Requéte dans plusieurs table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Requéte dans plusieurs table

par eru » 03 nov. 2007, 13:27

si il faut etre un Mago :wink:

par Sékiltoyai » 03 nov. 2007, 13:22

On ne peut pas tjs tout connaître :-/

par eru » 03 nov. 2007, 13:19

@Sékiltoyai : merci, je ne connaissais pas le mot clé UNION, j'ai donc induit guillaume dans un mur :oops:

toutes mes confuses guillaume :D

par Sékiltoyai » 03 nov. 2007, 13:10

Tu peux faire une UNION :

Code : Tout sélectionner

(SELECT 'table1' as nom_table, * FROM table1 WHERE table1.champ1 LIKE = '%motcle' OR table1.champ2 LIKE = '%motcle' ) UNION (SELECT 'table2' as nom_table, * FROM table2 WHERE table2.champ1 LIKE = '%motcle' OR table2.champ2 LIKE = '%motcle' )
Ca te renvoie tout en une seule requète, les 'table1' as nom_table et 'table2' as nom_table, te permettant d'identifier de quelle table provient l'enregistrement. Et tu peux utiliser les clauses d'ordre et de limite sur le résultat aussi…

@eru : Les requètes multiples c'est une fonction spéciale et je crois qu'elle ne renvoie le résultat que de la dernière requète…

par eru » 03 nov. 2007, 12:39

bin j'ai jamais vu faire... essaye lol, mais je pense pas que ça marche.... perso je ne m'y risquerais pas

pourquoi ne pas en faire deux a la suite comme pour les requêtes?

situ souhaites vraiement tou faire 'un coup voici une solution mais je ne suis pas convaincu....

Code : Tout sélectionner

$a[0][0] = "resultats de ta première requete"; $a[1][0] = "resultats de ta deuxieme requete"; foreach ($a as $v1) { foreach ($v1 as $v2) { echo "$v2\n"; } }
enfin un truc dans le genre.... Il doit exister un sytème plus simple, mais là je vois pas trop....

par guillaume40 » 03 nov. 2007, 12:39

Ouai ta raison je vais pas m'enbéter je vais faire comme çà.
Merci ;)

par eru » 03 nov. 2007, 12:22

et en faisant deux requêtes séparées? une pour chaque table?
Parce que si je comprends bine, si tu tapes ton mot clé, il faut retrouver toutes les entrées correspondante, quelle que soit la table?

Si tu fais deux requêtes, c pas beaucoup plus long, et tu sais automatiquement d'où vient l'entrée non?

par guillaume40 » 03 nov. 2007, 12:11

La le probléme c'est que sa retourne tout sur un seul enregistrement :S
Enfin si sa trouve une info dans la table1 et aussi dans la table2 sa fait un seul enregistrement

par eru » 03 nov. 2007, 12:06

tu peux essayer de faire des jointures, genre :

Code : Tout sélectionner

"SELECT * FROM table1, table2 WHERE table1.champ1 LIKE = '%motcle' OR table1.champ2 LIKE = '%motcle' OR table2.champ1 LIKE = '%motcle' OR table2.champ2 LIKE = '%motcle' ;
C'est un peu laborieux je le concède mais ca devrait marcher...

Requéte dans plusieurs table

par guillaume40 » 03 nov. 2007, 12:00

Bonjour,
J'aimerai faire un moteur de recherche du contenu se trouvant sur mon site.
Et quand on met un mot clé çà cherche ce mot clé dans les tables que je veux dans certaines colones (nom, description,...)
Et que dans la résultat je puisse connaitre de quelle table la donnée vient pour pouvoir mettre les liens aprés.

Voici mes tables :
Video (id,nom,description)
Actualite (id,nom,actu)

Et par exemple si je met le mot clé Bourse sa cherche ce mot clé dans les tables Video, et Actualite dans les colones nom,description et actu et si des résultats sont trouvé pouvoir connaitre le nom de la table.

Je ne sais pas si vous m'avez compris....
Merci d'avance ;)