Recherche dans 2 tables [php/mysql]
Résolu
Aldie
-
pyschopathe Messages postés 1974 Date d'inscription Statut Membre Dernière intervention -
pyschopathe Messages postés 1974 Date d'inscription Statut Membre Dernière intervention -
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 :
Le message d'erreur :
Merci d'avance pour votre aide et vos suggestions!
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:
- Recherche dans 2 tables [php/mysql]
- Supercopier 2 - Télécharger - Gestion de fichiers
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Tables des matières word - Guide
- 2 ecran pc - Guide
- Recherche photo - Guide
1 réponse
- 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.
- 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.