J'ai 2 tables; les membres et les équipesPourquoi cette requête MySQL complexe ne fonctionne-t-elle pas?
Table membresMemberID, prenom, lastName
(prenom et nomFamille sont des index en texte intégral)
équipes Table team_id, member1ID, member2ID
Voici ma requête
$sql = "SELECT a.* ";
$sql .= "FROM teams a WHERE ";
$sql .= "a.member1ID IN (SELECT b.memberID FROM members b ";
$sql .= "WHERE MATCH(b.firstName, b.lastName) AGAINST('$q' IN BOOLEAN MODE)) ";
$sql .= "OR a.member2ID IN (SELECT b.memberID FROM members b ";
$sql .= "WHERE MATCH(b.firstName, b.lastName) AGAINST('$q' IN BOOLEAN MODE)) ";
if($year)
$sql .= "AND a.team_y = $year ";
$sql .= "ORDER BY a.team_num ASC ";
if($limit)
$sql .= "$limit";
Cette requête doit être proche, mais elle ne fonctionne pas encore. J'essaie de créer une requête qui me permettra de voir toutes les équipes sur lesquelles "$ q" est activé.
Ex. $ q = doe, Montre-moi toutes les équipes qui sont actives.
Cette requête doit sortir les équipes.
Veuillez reformuler le titre de votre question car "J'ai besoin d'aide" n'est pas une question. –
Il est difficile de saisir la requête. Montrez-nous la requête complète - echo $ sql; –
normalement il y aurait 3 tables: équipes, membres, membres d'équipe. mais puisque vous utilisez 2 table, je vous suggère de changer la façon dont vous interrogez. D'ailleurs tu as oublié le mot LIMIT avant $ limit – frail