Доброго вечера пятницы!
Решаю одну проблему, мещающую полноценной работе панели статистики посещаемости сайта Фонда и я покажу вам служебную информацию моей MySQL-таблицы запросов к сайту:
CREATE TABLE `statistic` (
`date` datetime NOT NULL,
`ip` text NOT NULL,
`city` text NOT NULL,
`region` longtext NOT NULL,
`country` longtext NOT NULL,
`ua` text NOT NULL,
`source` text NOT NULL,
`page` text NOT NULL,
`month` int(2) NOT NULL,
`year` year(4) NOT NULL,
`week` int(2) NOT NULL,
`resource` text NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
KEY `date` (`date`)
) ENGINE=InnoDB AUTO_INCREMENT=12442 DEFAULT CHARSET=utf8
Сейчас я тестирую новую версию вкладки "Регионы" самой панели статистики.
И я хочу посмотреть в самой новой версии реализованную мной на PHP и Yii1 систему показа таблицы уникальных городов в зависимости от выбранной страны и региона и посмотреть не удалось, получив эту ошибку:
Undefined index: city
А применил правильный работающий PHP-код в шаблоне вкладки:
<?php
else if (isset($_GET['country']) && isset($_GET['region'])) {
$c = trim($_GET['country']);
$r = trim($_GET['region']);
$static=Yii::app()->db->CreateCommand();
$static->selectDistinct("city");
$static->from("statistic");
$static->where(array("and","resource='Добрые-Взрослые'","country='". $c ."'","region='". $r ."'"));
$regions=$static->queryAll();
foreach ($regions as $list) {
echo "<tr>";
echo "<td><a href='/static/?static_page=regions&country=". $c ."®ion=". $r ."&city=". $list['city'] ."'><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACTwAAAk8B95E4kAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANdSURBVFiF7ZbfT5NnFMc/5+kLpV0KyYhmc44sm6KTQZGi7AIX40YWkznNZvwnDAmtGyRe7Wa/3Cyo2/4J9kucY8Ylu9ALECoUxUxxbnFTowlGdBEKb5+zC2pWXtpKsQk3fi+fc97z/Zwn75Nz4KlWWFJMcngwVquO7kV1J8hqoDoTmgRug/Qbn/vt6OajEyUFCA/FNiP2c0Xallj2VNrQNd4UTz4RwPbfPnLuhqa+BNoBA9wBjiv6s7EyYRz3DoB1ndX4qFVlJ7AHWAVYRXs2XrvR2buvN100QGS4q8ol1ZvpegYlng6mPh2v++bfQtAbznaGyivmDgpEAT/IqYA7t2/w9WP3lwywbqLdH5zy/QrSCvxlxe6+GDkyVsjYq7rzsbDP6o/AS8CZh1Vu29X1x1LePJPr42fuOUcz5v/gutuKNQcYb4onrZU3gBvAtuCUE8+Vt+gGwkPRrSoMANOi0prcEh8p1jxb9YkDEVF7BqgAbR5r7jmfHV90A2r4GBBFDj/OvGE4qg3DUS2UcyFyOIFoHBAwn3jjCwDCg7FalLeAydkZ54tChYtRYC59CLgL+nZdIrouL4A6uhdAlO8utx56UCqAzAv4AcCovJ8XAMsOAEVOlsr8kUQ4OW9o38wPINQApI1eKjWAWnsJQJGa7HPHk/ccgDtddttboNDPlis21ty94IUF0vbWtGNQeD773PsKBMAfsjaf2XJ1zw1oxmABmPcGbgHrjZ1dAyyYaN6O4P/Oc8W88vtTazL93sw+997A3wDWdV59XMFiJcZsAhD0egEA7QdQdE+pAVTna1qV/rwAkjZ9ACK8u+FsZ6hU5i0D7ZUg7wBYw4m8AMmW+BVBTwPV5RXuh6UCmC7zdQLPovwyHum+mh1b9PM0nutotEYSwEyJh1G5FdvknayLhtHo1p5REY4AQRXtaxhoX7tc89fOxV4UtceBAEh3rrGecx9INlV9gHICWIvjjDQOdWwv1rwh0bHDGB0BXkC0byxS2ZUrb+krGfLVbDr12e8tX08WMt44uL+6zFd2UJD9LHcle6QcS+kDQfoQ+z2uuTj1sPI6QFXwfo0a6hF9D9gFhHjSpTRbK7aWe1U/FH1ZhF0KbQKvML9wAvwJ/AFyWlV/urCl+1oxdZ9qRfUfHY1asGPwJj4AAAAASUVORK5CYII=' /></a></td>";
echo "<td>". $list['city'] ."</td>";
$static=Yii::app()->db->CreateCommand('SELECT COUNT(DISTINCT ip) FROM statistic WHERE resource="Добрые-Взрослые" AND city="'. $list['city'] .'" AND region="'. $r .'" AND country="'. $c .'"');
$count=$static->queryScalar();
echo "<td>". $count ."</td>";
echo "</tr>";
}
}
?>
Сам алгоритм отвечает за показ уникальных городов в зависимости от выбранного GET-запросами страны и региона
1.Потом пробовал ввести SQL-команду:
SHOW CREATE TABLE statistic;
2.Проверил, что остальные таблицы не имеют простых ключей и оказалось помешал полноценной работе новой версии вкладки вот такой отрывок:
KEY `date` (`date`)
3.Подискывая в Интернете о том, как удалить ключ в столбце с помощью
DROP KEY
, пробовал некоторые варианты использования DROP KEY, в столбце, где нуждается в проблеме и MySQL считал варианты допустимыми синтаксисческими ошибками.
Ребята, подскажите мне, пожалуйста как правильно удалить с помощью DROP тип ключа KEY, используемый в столбце "city", чтобы избежать ошибки недопустимого индекса?
Заранее вам спасибо!