Recherche dans 2 tables [php/mysql]

Résolu/Fermé
Aldie - 2 juin 2009 à 15:53
pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 - 2 juin 2009 à 16:00
Bonjour,

J'ai un souci dans mon script de recherche. Je dois effectuer une recherche dans une base de données composée de deux tables. Les tables sont indépendantes, c'est à dire qu'elles n'ont pas le même nombre de champs, et elles n'ont pas non plus les mêmes noms de champs.

Pour être plus précise, je dois chercher dans les deux tables la présence d'un mot clé que l'utilisateur aura envoyé par un moteur de recherche.

J'ai fait une requête avec la jointure UNION, mais ça bloque... Je ne sais pas si c'est parce que j'ai mail formulé la requête ou si c'est parce que j'utilise la mauvaise jointure :/

La requête bancale :

$requete = mysql_query(
"SELECT * FROM journaux
 WHERE journal LIKE '%".$recherche."%' 
 OR titrej LIKE '%".$recherche."%' 
 OR numeroj LIKE '%".$recherche."%'
 OR datej LIKE '%".$recherche."%' 
 OR notesj LIKE '%".$recherche."%' 
 OR mot1j LIKE '%".$recherche."%' 
 OR mot2j LIKE '%".$recherche."%' 
 OR mot3j LIKE '%".$recherche."%' 
 OR mot4j LIKE '%".$recherche."%'
 OR mot5j LIKE '%".$recherche."%' 
 OR mot6j LIKE '%".$recherche."%' 
 OR mot7j LIKE '%".$recherche."%' 
 OR mot8j LIKE '%".$recherche."%'
 UNION SELECT * FROM archive
 WHERE doc LIKE '%".$recherche."%'
 OR titre LIKE '%".$recherche."%' 
 OR auteur LIKE '%".$recherche."%'
 OR date LIKE '%".$recherche."%' 
 OR lieu LIKE '%".$recherche."%'
 OR editeur LIKE '%".$recherche."%' 
 OR notes LIKE '%".$recherche."%'
 OR mot1 LIKE '%".$recherche."%' 
 OR mot2 LIKE '%".$recherche."%' 
 OR mot3 LIKE '%".$recherche."%' 
 OR mot4 LIKE '%".$recherche."%' 
 OR mot5 LIKE '%".$recherche."%' 
 OR mot6 LIKE '%".$recherche."%' 
 OR mot7 LIKE '%".$recherche."%' 
 OR mot8 LIKE '%".$recherche."%'")

or die (mysql_error());


Le message d'erreur :

The used SELECT statements have a different number of columns


Merci d'avance pour votre aide et vos suggestions!
A voir également:

1 réponse

pyschopathe Messages postés 1973 Date d'inscription dimanche 2 mars 2008 Statut Membre Dernière intervention 22 mars 2010 135
2 juin 2009 à 16:00
- Une UNION n'est pas une jointure.
- Pour faire une UNION entre deux tables, elles doivent avoir le même nombre de colonnes (c'est ce que signifie ton message d'erreur.
- Tu ferais mieux de faire une table spécifique pour ta recherche.
- Pour faire marcher cette méthode, tu devrais utiliser deux requêtes : une pour journal et une pour doc.
0