Я создаю интерфейс PHP для таблицы CDR Asterisk, но моя таблица, созданная в PHP, не заполняется должным образом.
Мне удалось успешно сохранить CDR в удаленной базе данных, запущенной XAMPP.
Ниже я прилагаю код SQL - автоматически создается MariaDB Asterisk
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START
TRANSACTION; SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
-
- База данных: cdr_ex
-
- Структура таблицы для таблицы cdr
CREATE TABLE `cdr` ( `calldate` datetime NOT NULL, `clid`
varchar(80) NOT NULL, `src` varchar(80) NOT NULL, `dst`
varchar(80) NOT NULL, `dcontext` varchar(80) NOT NULL, `channel`
varchar(80) NOT NULL, `dstchannel` varchar(80) NOT NULL, `lastapp`
varchar(80) NOT NULL, `lastdata` varchar(80) NOT NULL, `duration`
int(11) NOT NULL, `billsec` int(11) NOT NULL, `disposition`
varchar(80) NOT NULL, `amaflags` int(11) NOT NULL, `accountcode`
varchar(80) NOT NULL, `userfield` varchar(80) NOT NULL, `uniqueid`
varchar(32) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-
- Данные сброса для таблицы cdr
INSERT INTO `cdr` (`calldate`, `clid`, `src`, `dst`, `dcontext`,
`channel`, `dstchannel`, `lastapp`, `lastdata`, `duration`, `billsec`,
`disposition`, `amaflags`, `accountcode`, `userfield`, `uniqueid`)
VALUES ('2019-04-16 09:43:29', '\"t1\" <110>', '110', 's',
'from-sip-external', 'SIP/XXX.XXX.X.XXX-00000000', '', 'Playback',
'ss-noservice', 7, 6, 'ANSWERED', 3, '', '', 'XXXXXXXXXX.0');
-
- индексы для дамп-таблиц
- - индексы для таблицы cdr
-- ALTER TABLE `cdr` ADD PRIMARY KEY (`uniqueid`); COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
И это моеКод PHP:
<body>
<h1>CDR</h1> <!-- heading -->
<div class="mainBody">
<?php
$query="SELECT 'calldate','dst','lastapp', 'duration', 'billsec', 'disposition' FROM cdr";
$cdr = mysqli_query($db,$query);
if(mysqli_num_rows($cdr)>0) //if exist print the table consisting of the all the fields from cdr table
{
echo "<table border='1'>
<tr>
<th>Call Date</th>
<th>Destination</th>
<th>Connection type</th>
<th>Duration</th>
<th>Billed time</th>
<th>Status</th>
</tr>";
while($row=mysqli_fetch_array($cdr))
{
echo "<tr>";
echo "<td><div name='cdate'>" . $row['calldate'] . "</div></td>";
echo "<td><div name='destination'>" . $row['dst'] . "</div></td>";
echo "<td><div name='ctype'>" . $row['lastapp'] . "</div></td>";
echo "<td><div name='cduration'>" . $row['duration'] . "</div></td>";
echo "<td><div name='btime'>" . $row['billsec'] . "</div></td>";
echo "<td><div name='cstatus'>" . $row['disposition'] . "</div></td>";
echo "</tr>";
}
echo "</table>";
}
else
{
echo '<p style="color:red">Nothing to display</p>';
}
$db->close(); //close the db
?>
</body>
ВЫХОД.Вместо заполнения таблицы фактическим содержимым имена атрибутов таблицы выбираются во всех полях.(Я не могу включить изображение).
Кто-нибудь знает, что я делаю неправильно?Другие таблицы (созданные пользователем) заполняются правильно, поэтому я предполагаю, что таблица Asterisk может быть защищена.