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 -
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?
<?
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:
- Selectionner 3 tables d'une base2données?
- Ai suite 3 - Télécharger - Optimisation
- Tables des matières word - Guide
- Picasa 3 - Télécharger - Albums photo
- Diviser une photo en 3 instagram - Guide
- Photorecit 3 - Télécharger - Visionnage & Diaporama
2 réponses
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...
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...