moteur de rcherche php: comment sélectionner 3 tables? - PHP - Programmation
Marsh Posté le 27-05-2010 à 09:43:30
SELECT id,nom,'news' as type FROM news WHERE nom LIKE '%requete%' UNION
SELECT id,nom,'faune' as type FROM fauneWHERE nom LIKE '%requete%'
...
ce n'est pas htmlspecialchars qu'il faut utiliser mais mysql_real_escape_string
il vaut peut ter mieux utiliser MATCH AGAINST plutot que LIKE
Marsh Posté le 27-05-2010 à 12:51:09
slt merci pour la réponse! pour le code ça ne m'a donné aucunne érreur de syntax mais il ne trouve aucune page!
les table sont trés différentes il ya que le champ nom et id qui existe ds les memes tables mais le nom n'est pas le meme!
comment faire?
Marsh Posté le 27-05-2010 à 16:21:02
- refaire les choses un peu plus proprement en homogénéisant tout ça
- lancer 3 recherches différentes dans tes 3 tables
Marsh Posté le 27-05-2010 à 16:42:02
Comme l'a montré flo, le plus simple est de faire des UNION.
Mais dans entre les différents UNION, tous les champs retournés doivent être identiques (dans chaque requête UNION, tu dois avoir le même nombre de "colonnes", portant le même nom, et du même type).
Tu peux gérer cela sans trop de problème en utilisant des alias (AS)
donc
Code :
|
Edit : si je ne dis pas d'âneries MATCH AGAINST est pas mal pour faire des recherches FULL TEXT, mais demande un index full text sur les champs sur lesquels tu veux faire des recherches, et ne fonctionne que sur du MyIsam.
Marsh Posté le 26-05-2010 à 23:59:31
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?