8721 sujets

Développement web côté serveur, CMS

Bonjour, j'ai crée un système de recherche pour un site de videoqui marche bien mais j'ai deux problème.
J'ai utiliser le LIKE de SQL pour pouvoir recherche les données qui sont comme la variable de recherche mais si je tappe par exemple "Bleu Rouge" dans mon système de recherche je n'obtient rien car je n'ai aucune categorie qui s'appelle Bleu Rouge mais une catégorie Bleu et une catégorie Rouge pourtant j'ai des vidéos qui appartiennt aux deux catégories.

Mon deuxième problème est le faite que quand je vais directement sur ma page de résultat, j'obtient l'erreur que ma variable de recherche n'existe pas (c'est normal) mais du coup je n'ai pas trouver le moyen de régler ce problème.

Merci d'avance Smiley smile
Salut Smiley smile

Sans plus de code ou d'exemple pas facile te venir en aide Smiley smile

Mais bon dans un premier temps déjà

SI tu utilises le LIKE tu peux remplacer les espaces par des % dans ta chaine
Et créer une recherche avec des OR en coupant tous les mots aux espaces Smiley smile

sans voir l'erreur concernant la variable de recherche pas facile...
Sinon il suffit de tester si elle existe avant de l'utiliser Smiley smile c'est la base dans tous les langages de programmation Smiley smile
Quand je rentre chez moi je vous envoie le code mais pour le problème 1 t'as réponse devrait regler le problème merci bcp!
Bon, j'ai pas reussi mais voici ma requête SQL si vous pouviez m'aider,
J'aimerais pouvoir récuperer toutes les idVideo qui possèdent les catégories Fiction et Horreur par exemple.

SELECT * FROM video WHERE idVideo IN (SELECT idVideo from possess WHERE idCategory IN (SELECT idCategory FROM category WHERE labelCategory LIKE 'Fiction Horreur')
ddddddddddddddddddddddddddddddddddddddddddddddddddddd
Modifié par Chibrax (04 Jun 2017 - 19:49)
Re .

Au niveau de ta recherche tu n'auras pas de résultats avec cette écriture.

En premier lieu est ce que les mots de recherche sont exact avec ton label dans la table category ?

si oui

il te faut plutôt ceci :
SELECT * FROM video WHERE idVideo IN (SELECT idVideo from possess WHERE idCategory IN (SELECT idCategory FROM category WHERE (labelCategory = 'Fiction' OR labelCategory = 'Horreur')


En revanche si le mot n'est pas avec l'orthographe exact il te faudra plutôt ceci

SELECT * FROM video WHERE idVideo IN (SELECT idVideo from possess WHERE idCategory IN (SELECT idCategory FROM category WHERE (labelCategory LIKE '%Fiction%' OR labelCategory LIKE '%Horreur%')


Après pour le découpage je suppose et espère que tu sais faire Smiley cligne