J'utilise cette requête pour afficher une liste de chansons et montrer quelles chansons ont été cliquées comme favoris par un utilisateur.rejoindre la requête en retournant des résultats impairs
$query = mysql_query(
sprintf("
SELECT
s.*,
UNIX_TIMESTAMP(`date`) AS `date`,
f.userid as favoritehash
FROM
songs s
LEFT JOIN
favorites f
ON
f.favorite = s.id
AND f.userid = %s",
$userhash)
);
Le tableau songs
est configuré comme: id artist title duration
etc., etc.
Le tableau favorites
est configuré comme: id favorite userid
Le userid
est une valeur de hachage stockée dans un cookie pour référencer un utilisateur unique .
La requête fonctionne correctement mais pour une raison quelconque, si je marque une chanson comme favorite dans un navigateur. Et puis marquer la même chanson que favori dans un autre navigateur pour simuler plusieurs utilisateurs, la chanson sera affichée deux fois ... une fois pour chaque fois qu'il est marqué favori, mais l'indicateur préféré un < 3 affichera toujours correctement.
Des idées?
Eh bien, il a fallu travailler via removign le sprintf() mais curieux de savoir pourquoi c'est si quelqu'un a des idées.
J'ai effectivement enlevé toute la partie sprintf et il semble fonctionner parfaitement. – ian