Ich benutze diese Abfrage, um eine Liste von Songs anzuzeigen und zeigen, welche Songs als Favorit von einem Benutzer angeklickt wurden.Join Abfrage zurückkehrende ungerade Ergebnisse
$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)
);
songs
Die Tabelle ist Setup als: id artist title duration
etc. etc.
favorites
Die Tabelle ist Setup als: id favorite userid
Die userid
ein Hash-Wert in einem Cookie gespeichert wird einen eindeutigen Benutzer zu referenzieren .
Die Abfrage funktioniert gut, aber aus irgendeinem Grund, wenn ich einen Song als Favorit in einem Browser markieren. Markieren Sie das gleiche Lied als Favorit in einem anderen Browser, um mehrere Benutzer zu simulieren. Das Lied wird zweimal angezeigt ... einmal für jedes Mal, wenn es als Favorit markiert ist, aber die Favoritenanzeige < 3 wird weiterhin korrekt angezeigt.
Irgendwelche Ideen?
Nun habe es funktioniert über remindign die sprintf() aber neugierig zu wissen, warum das ist, wenn jemand irgendwelche Ideen hat.
Ich habe tatsächlich den ganzen Sprintf Teil entfernt und es scheint perfekt zu funktionieren. – ian