Abfrage wieviele PN's an den gleichen Empfänger
Verfasst: 06.10.2013 15:21
Hallo,
ich bastle gerade eine Funktion mit der ich den Missbrauch der PN's als Privatchat verhindern kann. Dabei darf der User nur eine bestimmte Anzahl an PN's pro Stunde an den gleichen Empfänger schicken, dann wird die Absendung verhindert und eine Warnmeldung bekommt der User zu sehen.
Mein Problem ist jetzt wie die SQL Abfrage aussehen muss, damit ich die Empfänger user_id bekomme, welche der Absender am häufigsten kontaktierte.
Bis jetzt sieht meine Abfrage so aus:
Ich bekomme aber den folgenden Fehler:
Gruß Helmut
ich bastle gerade eine Funktion mit der ich den Missbrauch der PN's als Privatchat verhindern kann. Dabei darf der User nur eine bestimmte Anzahl an PN's pro Stunde an den gleichen Empfänger schicken, dann wird die Absendung verhindert und eine Warnmeldung bekommt der User zu sehen.
Mein Problem ist jetzt wie die SQL Abfrage aussehen muss, damit ich die Empfänger user_id bekomme, welche der Absender am häufigsten kontaktierte.
Bis jetzt sieht meine Abfrage so aus:
Code: Alles auswählen
$pm_count_time_limit2 = time() - 3600;
$sql = 'SELECT p.msg_id, t.author_id, p.message_time, t.msg_id, t.user_id
FROM ' . PRIVMSGS_TABLE . ' p
LEFT JOIN ' . PRIVMSGS_TO_TABLE . ' t ON (p.msg_id = t.msg_id)
WHERE t.author_id = ' . $user->data['user_id'] . '
AND t.user_id != t.author_id
AND p.message_time >= ' . $pm_count_time_limit2 . '
AND (SELECT COUNT(t2.user_id), t2.user_id, t2.author_id
FROM ' . PRIVMSGS_TO_TABLE . ' t2)
GROUP BY t2.user_id, p.message_time DESC';
$result = $db->sql_query($sql);
Wie muss die Abfrage aussehen, damit ich die user_id bekomme, welche am meisten PN's innerhalb einer Stunde an den gleichen Empfänger geschickt hat?Allgemeiner Fehler
SQL ERROR [ mysql4 ]
Operand should contain 1 column(s) [1241]
SQL
SELECT p.msg_id, t.author_id, p.message_time, t.msg_id, t.user_id FROM phpbb3_privmsgs p LEFT JOIN phpbb3_privmsgs_to t ON (p.msg_id = t.msg_id) WHERE t.author_id = 4256 AND t.user_id != t.author_id AND p.message_time >= 1381061774 AND (SELECT COUNT(t2.user_id), t2.user_id, t2.author_id FROM phpbb3_privmsgs_to t2) GROUP BY t2.user_id, p.message_time DESC
BACKTRACE
FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()
FILE: [ROOT]/includes/db/dbal.php
LINE: 757
CALL: trigger_error()
FILE: [ROOT]/includes/db/mysql.php
LINE: 193
CALL: dbal->sql_error()
FILE: [ROOT]/test4.php
LINE: 87
CALL: dbal_mysql->sql_query()
Gruß Helmut