Selectionner 3 tables d'une base2données?

linda.zazy Messages postés 297 Date d'inscription   Statut Membre Dernière intervention   -  
linda.zazy Messages postés 297 Date d'inscription   Statut Membre Dernière intervention   -
salut j'ai fais un moteur de recherche interne pour mon site web, j'ai trouvé un script qui fonctionne bien mais je veux sélectionner 3tables au lieu d'une seule. j'ai éssayé mais je reçois tjrs un message(erreur de syntax) voila le code:

<?
if(isset($_POST['requete']) && $_POST['requete'] != NULL){
mysql_connect('localhost','root','');
mysql_select_db('parc');
$requete = htmlspecialchars($_POST['requete']);
$query = mysql_query("SELECT * FROM news WHERE nom LIKE '%$requete%' ORDER BY id DESC") or die (mysql_error());..............................................................................
...........................................................


voila je veuw ajouter 2 autres tables faune et flore:
j'ai fait:
SELECT * FROM news,faune,flore WHERE nom LIKE.....

est ce que vous pouvez m'aider?
A voir également:

2 réponses

fiu
 
Salut

Le plus simple pour ton cas semble être une "addition" des résultats dans news avec les résultats dans faune et les résultats dans flore. Mais attention, pour réaliser une telle "addition" les structures des tables (ou tout du moins leurs projections) doivent être identiques

Si c'est le cas, ta requête doit alors être l'union des 3 résultats :
SELECT * FROM news WHERE nom LIKE '%$requete%' ORDER BY id DESC
UNION
SELECT * FROM flore WHERE nom LIKE '%$requete%' ORDER BY id DESC
UNION
SELECT * FROM faune WHERE nom LIKE '%$requete%' ORDER BY id DESC

le seul pb de cette syntaxe est que tu aurais d'abord les résultats de news puis ceux de flore puis ceux de faune.

Si tu veux mélanger tous ces résultats pour ensuite les trier par ID, il faut alors considérer cette union comme base pour une requête de niveau supplémentaire :
SELECT * FROM (
SELECT * FROM news WHERE nom LIKE '%$requete%'
UNION
SELECT * FROM flore WHERE nom LIKE '%$requete%'
UNION
SELECT * FROM faune WHERE nom LIKE '%$requete%'
) ORDER BY id DESC


et voilà ! j'espère être pas trop loin de ce que tu voulais...
0
linda.zazy Messages postés 297 Date d'inscription   Statut Membre Dernière intervention   16
 
bonjour, merci !
j'ai éssayé ton script regarde le messsage d'érreur:

Every derived table must have its own alias



qu'est ce que ça veut dire?
0