[SQL] Recherche dans une base de données

  • Auteur de la discussion Auteur de la discussion Magesticx
  • Date de début Date de début
Nouveau WRInaute
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
1122105817.png


Reservation
1122105996.png


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

1122109652.png


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 !!
 
WRInaute discret
Bonjour,
Et en essayant

Magesticx a dit:
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
 
Discussions similaires
Haut