IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de donn�es Discussion :

S�lection sql avec exclusion


Sujet :

PHP & Base de donn�es

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Lyc�en
    Inscrit en
    Novembre 2023
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Lyc�en

    Informations forums :
    Inscription : Novembre 2023
    Messages : 8
    Par d�faut S�lection sql avec exclusion
    Je tiens un site de lecture sur lequel les utilisateur peuvent recevoir des recommandation. Pour cela ,j'ai besoin de s�lectionner les livre d'autre utilisateur ayant une note de 4 et plus et dont le ne titre ressemble pas a un des titre des livre appartenant a l'utilisateur actuel.J'aimerais une selection sql les selectionnant automatiquement ,un peu comme :
    Code sql : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     SELECT * FROM livres
                      WHERE utilisateur_id != $utilisateurActuel
                      AND note >= 4
                      AND titre NOT IN (
                          SELECT %titre% FROM livres WHERE utilisateur_id = $utilisateurActuel (depuis php donc utilisation de variable interne au code)
                      ) ORDER BY note DESC
    (incorect bien sur,juste pour exprimer mon id�e...)
    Comment pourais je le faire?
    Merci d'avance

  2. #2
    Expert confirm� Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activit� : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par d�faut
    Qu'est-ce que tu entends pr�cis�ment par "titre ne ressemblant pas � un autre titre" ? Essaie de le reformuler et donne des exemples concrets de titres qui "se ressemblent" et de titres qui ne se ressemblent pas, pour bien montrer quelle est la limite entre les deux.

    Montre aussi la structure de ta base de donn�es.

  3. #3
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    D�veloppeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    �ge : 59
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeuse informatique
    Secteur : Administration - Collectivit� locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par d�faut
    A tout hasard, essaie ce genre de chose

    Code sql : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT * FROM livres
    WHERE utilisateur_id != 2250
    AND note >= 4
    AND concat("%",titre,"%") NOT IN (
      SELECT concat("%",titre,"%")
      FROM livres 
      WHERE utilisateur_id = 2250
    ) ORDER BY note DESC
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  4. #4
    Mod�rateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 599
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activit� : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 599
    Billets dans le blog
    10
    Par d�faut
    Attention : les titres ne sont pas uniques, il existe de nombreux cas de titres homonymes d'auteurs et de contenus tr�s diff�rents. C'est �galement vrai pour les films et pour les �uvres musicales.
    Il faudrait donc v�rifier que le titre et l'auteur sont diff�rents

  5. #5
    Expert confirm�
    Homme Profil pro
    Responsable Donn�es
    Inscrit en
    Janvier 2009
    Messages
    5 422
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Responsable Donn�es

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 422
    Par d�faut
    Bonjour,
    La demande initiale concerne les livres dont le titre ne ressemble pas � un des livres de l'utilisateur.
    Donc une comparaison "directe", comme un NOT IN par exemple, ne fonctionne pas, puisqu'il s'agit d'une recherche � l'identique.

    Il faudrait utiliser des fonctions de recherche "approchante", quelques piste de SqlPro ici.

    Tu peux aussi avoir une table de mots avec le Soundex, nue autre table qui "fait le lien" entre un mot et un titre, et calculer une sorte de score de correspondance entre 2 titres, en fonctiondes mots qui sont communs entre les deux. Et avec les Soundex tu peux chercher des mots approchants, pour g�rer les pluriels par exemple.
    Ainsi 2 livres dont les titres respectifs sont "Le crime" et "Les Crimes" peuvent avoir un score de correspondance �lev�, et mener � une exclusion.

    C'est "un peu" lourd � mettre en place, mais bien param�tr� �a peut �tre assez efficace.

    Tatayo.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Lyc�en
    Inscrit en
    Novembre 2023
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Lyc�en

    Informations forums :
    Inscription : Novembre 2023
    Messages : 8
    Par d�faut
    Citation Envoy� par CosmoKnacki Voir le message
    Qu'est-ce que tu entends pr�cis�ment par "titre ne ressemblant pas � un autre titre" ? Essaie de le reformuler et donne des exemples concrets de titres qui "se ressemblent" et de titres qui ne se ressemblent pas, pour bien montrer quelle est la limite entre les deux.

    Montre aussi la structure de ta base de donn�es.
    Des livre qui se ressemblent :
    • gardien des cit� perdues 1 - 9 (10 bient�t j'esp�re) et gardien des cit� perdues 1
    • Harry potter et Harry Potter et la Chambre des secrets


    qui ne se resseblent pas :
    • Math�matiques Barbazo et Physique Chimie 2de
    • Artemis Fowl et Pourquoi la tartine tombe toujours du c�t� du beurre

    La base de donn� :
    Nom : Capture d'�cran 2023-11-07 112105.png
Affichages : 93
Taille : 167,6 Ko

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Lyc�en
    Inscrit en
    Novembre 2023
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Lyc�en

    Informations forums :
    Inscription : Novembre 2023
    Messages : 8
    Par d�faut essai code
    Citation Envoy� par Dendrite Voir le message
    A tout hasard, essaie ce genre de chose

    Code sql : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT * FROM livres
    WHERE utilisateur_id != 2250
    AND note >= 4
    AND concat("%",titre,"%") NOT IN (
      SELECT concat("%",titre,"%")
      FROM livres 
      WHERE utilisateur_id = 2250
    ) ORDER BY note DESC
    le code mis sur la page :
    Nom : Capture d'�cran 2023-11-07 112357.png
Affichages : 93
Taille : 30,0 Ko
    le resultat :
    Nom : Capture d'�cran 2023-11-07 112510.png
Affichages : 92
Taille : 32,6 Ko

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Lyc�en
    Inscrit en
    Novembre 2023
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Lyc�en

    Informations forums :
    Inscription : Novembre 2023
    Messages : 8
    Par d�faut
    avec le code
    Code sql : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    SELECT * FROM livres
    WHERE utilisateur_id != $utilisateurActuel
     AND note >= 4
     AND titre NOT IN (
    SELECT titre FROM livres WHERE utilisateur_id = $utilisateurActuel
    ) GROUP BY titre ORDER BY note DESC
    je supprime deja les livre en double mais cela n'epeche pas les livres semblables...

  9. #9
    Expert confirm�
    Homme Profil pro
    Responsable Donn�es
    Inscrit en
    Janvier 2009
    Messages
    5 422
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 51
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Responsable Donn�es

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 422
    Par d�faut
    Le d�limiteur de cha�ne en SQL est la ', et non ".
    Code SQL : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT * FROM livres
    WHERE utilisateur_id != 2250
    AND note >= 4
    AND concat('%',titre,'%') NOT IN (
      SELECT concat('%',titre,'%')
      FROM livres 
      WHERE utilisateur_id = 2250
    ) ORDER BY note DESC

    Mais comme je le disais, NOT IN ne va pas "parser" le %, il ne se comporte pas comme un LIKE.
    Bref l'ajout de '%' en d�but et fin de cha�ne ne change rien ici.

    Tu as une impl�mentation pour MySql d'une comparaison de cha�ne l�, si �a peut t'aider.

    Tatayo.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Lyc�en
    Inscrit en
    Novembre 2023
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Lyc�en

    Informations forums :
    Inscription : Novembre 2023
    Messages : 8
    Par d�faut
    Citation Envoy� par tatayo Voir le message

    Tu as une impl�mentation pour MySql d'une comparaison de cha�ne l�, si �a peut t'aider.

    Tatayo.
    Bonne id�e !

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Lyc�en
    Inscrit en
    Novembre 2023
    Messages
    8
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Lyc�en

    Informations forums :
    Inscription : Novembre 2023
    Messages : 8
    Par d�faut
    en apliquant quelque modification,je tombe sur :
    Code sql : S�lectionner tout - Visualiser dans une fen�tre � part
     SELECT ( 1 - (distance_inference_basique( (SELECT titre FROM livres WHERE id = 6), (SELECT titre FROM livres WHERE id = 102) ) / GREATEST(CHAR_LENGTH((SELECT titre FROM livres WHERE id = 6)), CHAR_LENGTH((SELECT titre FROM livres WHERE id = 102))) ) ) * 100 AS pourcentage_ressemblance;

    penssez vous que cela puisse etre un bon idiquateur de ressemblance?
    la modification est elle corecte?
    comment l'utiliser sur des liste...je ne pensse pas que cela resolve la question...

Discussions similaires

  1. Probleme de connexion JDBC avec une base de donne mysql
    Par sultan_kafila dans le forum JDBC
    R�ponses: 19
    Dernier message: 12/04/2006, 08h25
  2. Probleme de requete SQL avec la valeur NULL
    Par samyghan dans le forum Installation
    R�ponses: 8
    Dernier message: 12/03/2006, 17h24
  3. R�ponses: 7
    Dernier message: 05/10/2005, 18h06
  4. Requ�te SQL avec une r�ponse unique
    Par Glutinus dans le forum Langage SQL
    R�ponses: 5
    Dernier message: 06/07/2005, 16h35
  5. Probleme de requete SQL avec un champs date
    Par ju360modena dans le forum ASP
    R�ponses: 5
    Dernier message: 16/06/2005, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo