2016-05-10 7 views
1

Ich habe eine kleine Social-Networking-App und der Benutzer hat die Möglichkeit, Beiträge, die andere machen "Gefällt mir".Überprüfen, ob ein Benutzer auf einen bestimmten Beitrag in MySQL & PHP

Ich kann die Likes leicht genug protokollieren, aber ich möchte nur 1 einfügen pro Benutzer. Im Moment kann derselbe Benutzer den gleichen Beitrag immer wieder "mögen".

Wie würde ich dies mit MySQL erreichen? Ich würde es lieber in einer Aussage machen, wenn es überhaupt möglich ist.

Hier ist meine aktuelle INSERT-Anweisung

INSERT INTO app_likes (user_id, post_id) VALUES ($user_id, $post_id) 

Also im Grunde, ich brauche zu überprüfen, ob der Benutzer bereits einen Eintrag in der Tabelle app_likes gegen diese post_id hat.

Sinn machen?

Antwort

0

Verwenden Sie den WHERE NOT EXISTS Zustand

INSERT INTO app_likes (user_id, post_id) 
SELECT * FROM (SELECT $user_id, $post_id) AS tmp 
WHERE NOT EXISTS (
    SELECT user_id, post_id FROM app_likes WHERE user_id = $user_id AND post_id = $post_id 
) LIMIT 1; 
+0

Vielen Dank für das, obwohl ich einen Fehler: Sie haben einen Fehler in der SQL-Syntax; Überprüfen Sie das Handbuch, das zu Ihrer MySQL-Server-Version für die richtige Syntax in der Nähe von 'WHERE NOT EXISTS (SELECT user_id, post_id VON app_likes WHERE user_id = 6 UND p' in Zeile 1 –

+0

@SimonHume jetzt versuchen. Ich habe vergessen, dass Sie können ' t verwende Werte mit dem 'WHERE NOT EXISTS' – Matt

+0

Cheers @Matt, funktioniert ein Leckerbissen. –

Verwandte Themen