105 lines
3.6 KiB
PHP
105 lines
3.6 KiB
PHP
|
|
<?php
|
|||
|
|
/**
|
|||
|
|
* Упрощённая проверка комментариев (прямое подключение к БД)
|
|||
|
|
* Вызов: https://crm.clientright.ru/scripts/check_replay_comment_simple.php?contact_id=392299
|
|||
|
|
*/
|
|||
|
|
error_reporting(E_ALL);
|
|||
|
|
ini_set('display_errors', '1');
|
|||
|
|
|
|||
|
|
chdir(dirname(__DIR__));
|
|||
|
|
require_once 'config.inc.php';
|
|||
|
|
require_once 'include/database/PearDatabase.php';
|
|||
|
|
|
|||
|
|
$contact_id = isset($_GET['contact_id']) ? (int)$_GET['contact_id'] : 392299;
|
|||
|
|
|
|||
|
|
header('Content-Type: text/plain; charset=utf-8');
|
|||
|
|
|
|||
|
|
$adb = new PearDatabase();
|
|||
|
|
|
|||
|
|
$q = $adb->pquery(
|
|||
|
|
"SELECT m.modcommentsid, m.commentcontent, m.related_to, m.channel, m.customer, m.userid,
|
|||
|
|
e.smownerid, e.deleted, e.setype, e.createdtime
|
|||
|
|
FROM vtiger_modcomments m
|
|||
|
|
INNER JOIN vtiger_crmentity e ON e.crmid = m.modcommentsid
|
|||
|
|
WHERE m.related_to = ?
|
|||
|
|
ORDER BY m.modcommentsid DESC
|
|||
|
|
LIMIT 10",
|
|||
|
|
array($contact_id)
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
echo "Комментарии для contact_id={$contact_id}:\n";
|
|||
|
|
echo str_repeat('=', 70) . "\n\n";
|
|||
|
|
|
|||
|
|
if ($adb->num_rows($q) === 0) {
|
|||
|
|
echo "❌ Записей в vtiger_modcomments для этого контакта НЕТ.\n";
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$count = $adb->num_rows($q);
|
|||
|
|
echo "✅ Найдено записей: {$count}\n\n";
|
|||
|
|
|
|||
|
|
for ($i = 0; $i < $count; $i++) {
|
|||
|
|
echo "--- Запись #{$i} ---\n";
|
|||
|
|
flush();
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
$modcommentsid = $adb->query_result($q, $i, 'modcommentsid');
|
|||
|
|
echo "modcommentsid: {$modcommentsid}\n";
|
|||
|
|
flush();
|
|||
|
|
|
|||
|
|
$deleted = $adb->query_result($q, $i, 'deleted');
|
|||
|
|
echo " deleted: " . ($deleted !== false ? $deleted : 'NULL/FALSE') . "\n";
|
|||
|
|
|
|||
|
|
$setype = $adb->query_result($q, $i, 'setype');
|
|||
|
|
echo " setype: {$setype}\n";
|
|||
|
|
|
|||
|
|
$channel = $adb->query_result($q, $i, 'channel');
|
|||
|
|
echo " channel: " . ($channel ? $channel : 'NULL') . "\n";
|
|||
|
|
|
|||
|
|
$smownerid = $adb->query_result($q, $i, 'smownerid');
|
|||
|
|
echo " smownerid: {$smownerid}\n";
|
|||
|
|
|
|||
|
|
$customer = $adb->query_result($q, $i, 'customer');
|
|||
|
|
echo " customer: {$customer}\n";
|
|||
|
|
|
|||
|
|
$userid = $adb->query_result($q, $i, 'userid');
|
|||
|
|
echo " userid: {$userid}\n";
|
|||
|
|
|
|||
|
|
$createdtime = $adb->query_result($q, $i, 'createdtime');
|
|||
|
|
echo " createdtime: {$createdtime}\n";
|
|||
|
|
|
|||
|
|
$commentcontent = $adb->query_result($q, $i, 'commentcontent');
|
|||
|
|
$text_preview = mb_substr($commentcontent, 0, 60, 'UTF-8');
|
|||
|
|
echo " text: {$text_preview}...\n";
|
|||
|
|
echo "\n";
|
|||
|
|
flush();
|
|||
|
|
} catch (Exception $e) {
|
|||
|
|
echo " ОШИБКА при чтении записи: " . $e->getMessage() . "\n\n";
|
|||
|
|
flush();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Проверка наличия в modcommentscf
|
|||
|
|
$q2 = $adb->pquery(
|
|||
|
|
"SELECT m.modcommentsid
|
|||
|
|
FROM vtiger_modcomments m
|
|||
|
|
LEFT JOIN vtiger_modcommentscf c ON c.modcommentsid = m.modcommentsid
|
|||
|
|
WHERE m.related_to = ? AND c.modcommentsid IS NULL
|
|||
|
|
ORDER BY m.modcommentsid DESC LIMIT 10",
|
|||
|
|
array($contact_id)
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
$missing_count = $adb->num_rows($q2);
|
|||
|
|
if ($missing_count > 0) {
|
|||
|
|
echo str_repeat('=', 70) . "\n";
|
|||
|
|
echo "⚠️ ВНИМАНИЕ: Комментарии БЕЗ строки в vtiger_modcommentscf: {$missing_count}\n";
|
|||
|
|
echo "(они НЕ попадут в список, т.к. используется INNER JOIN)\n\n";
|
|||
|
|
for ($i = 0; $i < $missing_count; $i++) {
|
|||
|
|
$mid = $adb->query_result($q2, $i, 'modcommentsid');
|
|||
|
|
echo " - modcommentsid: {$mid}\n";
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
echo str_repeat('=', 70) . "\n";
|
|||
|
|
echo "✅ Все комментарии есть в vtiger_modcommentscf.\n";
|
|||
|
|
}
|