[SQL] Recherche dans une base de données
3 messages
• Page 1 sur 1
- Magesticx
- Nouveau WRInaute

- Messages: 5
- Inscription: 26 Mai 2011
[SQL] Recherche dans une base de données
Bonjour !
Depuis ce matin je me creuse le cerveau sur le création d'un moteur de recherche pour un site que je développe.
En faite, j'ai 2 tables dans ma BDD, une qui contiens la liste des utilisateurs et une qui contiens une liste de réservations faite par les utilisateurs en question.
Utilisateur

Reservation

L’opération maintenant, consiste à pouvoir faire une recherche ( avec un nom, prenom, ou une date ) afin de pouvoir savoir qui a reserver à tél ou tél date.
Pour cela j'ai fait la requête :
SELECT DISTINCT *
FROM utilisateur u, reservation r
WHERE u.login = r.login_reservation
AND r.date LIKE '$search'
OR u.login LIKE '%$search%'
ORDER BY r.id_reservation DESC
LIMIT 0 , 60
Quand je remplace $search par une date ( par exemple 07-06-2011 ) j’obtiens bien la liste des utilisateurs ayant réserver le jour choisis, mais quand je remplace $search par un prénom ( ici maxence) le résultat deviens incompréhensible puisque il mélange totalement les deux tables !
Or ma jointure dit bien : WHERE u.login = r.login_reservation

Pourquoi mes deux colonnes ne sont donc pas identiques ?
Je suis dessus depuis se matin, et je trouve aucune réponse ! Si quelqu'un à une piste, ou même une idée je suis preneur !!
Depuis ce matin je me creuse le cerveau sur le création d'un moteur de recherche pour un site que je développe.
En faite, j'ai 2 tables dans ma BDD, une qui contiens la liste des utilisateurs et une qui contiens une liste de réservations faite par les utilisateurs en question.
Utilisateur

Reservation

L’opération maintenant, consiste à pouvoir faire une recherche ( avec un nom, prenom, ou une date ) afin de pouvoir savoir qui a reserver à tél ou tél date.
Pour cela j'ai fait la requête :
SELECT DISTINCT *
FROM utilisateur u, reservation r
WHERE u.login = r.login_reservation
AND r.date LIKE '$search'
OR u.login LIKE '%$search%'
ORDER BY r.id_reservation DESC
LIMIT 0 , 60
Quand je remplace $search par une date ( par exemple 07-06-2011 ) j’obtiens bien la liste des utilisateurs ayant réserver le jour choisis, mais quand je remplace $search par un prénom ( ici maxence) le résultat deviens incompréhensible puisque il mélange totalement les deux tables !
Or ma jointure dit bien : WHERE u.login = r.login_reservation

Pourquoi mes deux colonnes ne sont donc pas identiques ?
Je suis dessus depuis se matin, et je trouve aucune réponse ! Si quelqu'un à une piste, ou même une idée je suis preneur !!
-

Marie-Aude - Modérateur

- Messages: 11893
- Inscription: 5 Juin 2006
Re: [SQL] Recherche dans une base de données
left join serait plus adapté
- wattie
- WRInaute discret

- Messages: 79
- Inscription: 9 Sep 2008
Re: [SQL] Recherche dans une base de données
Bonjour,
Et en essayant
est-ce que ca se rapproche de ce que tu souhaites ?
ps : +1 pour le left join
Et en essayant
Magesticx a écrit:
SELECT DISTINCT *
FROM utilisateur u, reservation r
WHERE u.login = r.login_reservation
AND ( r.date LIKE '$search'
OR u.login LIKE '%$search%' )
ORDER BY r.id_reservation DESC
LIMIT 0 , 60
est-ce que ca se rapproche de ce que tu souhaites ?
ps : +1 pour le left join
3 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Base de données sql illimitées ?
- Organisation d'une base de données SQL
- base de données sql pour un chiffre décimal
- Problème pour importer ma base de données my sql...
- Exporter une base de données SQL sur un dédié
- Serveur Freya SQL Comment interroger la base de données?
- Recherche base de données spécifique [Moteur de recherche]
- recherche base de données + carte interactive
- Recherche dans une base de données MySQL
- Recherche mutualisé sans limite de taille base de données.
Consultez la description détaillée des produits ou services de Google suivants : Google Base
- Test de positionnement sur data centers
Cet outil vous permet d'afficher sur une seule page les résultats Google effectués sur de nombreux data centers (centres de données). - Suggestion de mots-clés Google
Cet outil vous permet d'obtenir une liste de 10 mots ou expressions suggérés par Google sur la base d'un mot que vous fournissez. - Analyser le positionnement d'un site
AgentWebRanking est un logiciel professionnel qui permet d'analyser le positionnement d'un ou plusieurs sites dans plus de 300 moteurs de recherche dans le monde. Vous pouvez ainsi analyser les performances du référencement pour de nombreux mots-clés. - Recherche de citations d'un site en texte brut
Cet outil vous permet de trouver des pages citant votre site mais ne faisant pas (encore) de lien. Il suffira parfois d'un simple mail pour transformer cette simple citation en lien (backlink).
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
