Перейти к содержанию
Форумы

Проверка БД


romodos

Рекомендуемые сообщения

Здраствуйте.

После обновления с Alpa2 на текущую версию database_check.php выдал вот что:

DataBase Checker for BPanel.

Base Version: 3.0 Beta.

 

Checking database structure with /admin/conf/database.php: something wrong!

 

city!==region at acc!

country!==city at acc!

thecode!==country at acc!

region!==thecode at acc!

city!==region at domen!

country!==city at domen!

thecode!==country at domen!

region!==thecode at domen!

 

Хотя вроде бы визуально все выглядит нормально.

Такое ощущение, что проблема в порядке упоминания баз в database.php.

Это просто ошибка в database_check.php или с базой что-то действительно не так?

 

Спасибо.

Ссылка на комментарий
Поделиться на другие сайты

Могут возникнуть проблемы при использовании ф-ии встроенного резервного копирования/восстановления, а так - все гут.

Если хотите, напишу скриптик для устранения проблемы, тогда

 

Для дальнейшего исследования проблемы необходимо следующее:

1. Данные доступа на FTP с биллингом

2. Данные доступа в реселлерскую часть cPanel; URL phpmyadmin.

3. Данные доступа в админ-центр биллинга, проверка по IP адресу должна быть отключена;

4. URL скрипта.

5. URL темы на форуме forum.advanta.org (если тема создавалась).

На admin @ advanta.org

Ссылка на комментарий
Поделиться на другие сайты

у меня после какйото версии тоже перемешались местами данные из Область, страна, код страны, город

так до сих пор в старых аккаунтах все перемешано. по мере возможности исправляю в ручную.

Ссылка на комментарий
Поделиться на другие сайты

посмотрел: перемешано в аккантуах зарегистрированных до мая этого года, кажется тогда не было никакого проверяльщика. сейчас же все говорит что все нормально. all it's OK!

эти поля просто сдвинулись. во как сейчас в старых аккаунтах:

Город: RU

Область: Кострома

Страна: {то что было первое в пункте раньше Afganistan сейчас Австралия}

Телефон: + Костромская {номер нормальный}

данные перемешались и в аккаунтах и в доменах
Ссылка на комментарий
Поделиться на другие сайты

rrr,

Скопируйте config.php в config2.php и в конец config2.php перед "?>" добавьте:

 

$resultdata = mysql_query("select * from acc");

while($iddata = mysql_fetch_assoc($resultdata)) {

if (is_numeric($iddata["country"])) {

mysql_query("update acc set country='$iddata[city]', city='$iddata[region]', region='$iddata[thecode]', thecode='$iddata[country]' where ID='$iddata[iD]'") or die(mysql_errno($connect).mysql_error($connect));

}

}

 

Однократно запустите config2.php, должно помочь.

Ссылка на комментарий
Поделиться на другие сайты

romodos,

 

Создайте резервную копию базы данных через phpmyadmin, скопируйте config.php в config2.php и в конец config2.php перед "?>" добавьте:

 

// ######################################################## //

// Работа #1

// ######################################################## //

 

$fields=mysql_list_fields($dbname, "acc", $connect);

 

if (mysql_field_name($fields,9)=="city") {

 

mysql_query("alter table acc change city region_true text not null");

mysql_query("alter table acc change country city_true text not null");

mysql_query("alter table acc change thecode country_true text not null");

mysql_query("alter table acc change region thecode_true text not null");

 

mysql_query("alter table acc change region_true region text not null");

mysql_query("alter table acc change city_true city text not null");

mysql_query("alter table acc change country_true country text not null");

mysql_query("alter table acc change thecode_true thecode text not null");

 

$resultdata = mysql_query("select * from acc order by ID");

while($iddata = mysql_fetch_assoc($resultdata)) {

mysql_query("update acc set region='$iddata[city]', city='$iddata[country]', country='$iddata[thecode]', thecode='$iddata[region]' where ID='$iddata[iD]'");

}

 

print"completed #1!<br>";

}

else {

print"already fixed #1!<br>";

}

 

// ######################################################## //

// Работа #2

// ######################################################## //

 

$fields=mysql_list_fields($dbname, "domen", $connect);

 

if (mysql_field_name($fields,8)=="city") {

 

mysql_query("alter table domen change city region_true text not null");

mysql_query("alter table domen change country city_true text not null");

mysql_query("alter table domen change thecode country_true text not null");

mysql_query("alter table domen change region thecode_true text not null");

 

mysql_query("alter table domen change region_true region text not null");

mysql_query("alter table domen change city_true city text not null");

mysql_query("alter table domen change country_true country text not null");

mysql_query("alter table domen change thecode_true thecode text not null");

 

$resultdata = mysql_query("select * from domen order by ID");

while($iddata = mysql_fetch_assoc($resultdata)) {

mysql_query("update domen set region='$iddata[city]', city='$iddata[country]', country='$iddata[thecode]', thecode='$iddata[region]' where ID='$iddata[iD]'");

}

 

print"completed #2!<br>";

}

else {

print"already fixed #2!<br>";

}

 

Однократно запустите config2.php, должно помочь.

Ссылка на комментарий
Поделиться на другие сайты

Блин, после выполнения этих операций поменялись местами код региона в телефоне и город, сбились настройки страны. А вместо области теперь пишет RU.

Ссылка на комментарий
Поделиться на другие сайты

Попробуйте еще http://forum.advanta.org/index.php?s=&...ost&p=21967

Если не получиться - восстанавливайте из бекапа и

 

Для дальнейшего исследования проблемы необходимо следующее:

1. Данные доступа на FTP с биллингом

2. Данные доступа в реселлерскую часть cPanel;

3. Данные доступа в админ-центр биллинга, проверка по IP адресу должна быть отключена;

4. URL скрипта.

5. URL темы на форуме forum.advanta.org (если тема создавалась).

На admin @ advanta.org

Ссылка на комментарий
Поделиться на другие сайты

У меня там немного не те поля надо было переставлять, но я подредактировал скрипт - запустил, теперь вроде все ок.

Но непонятно, почему получается такая чехарда при обновлении?

Ведь поля эти не менялись уже сто лет.

Ссылка на комментарий
Поделиться на другие сайты

Но непонятно, почему получается такая чехарда при обновлении?

Честно говоря не знаю, database_check, который проверяет правильность последовательности появился ведь недавно, вот и всплыло.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...

При следующем беспорядке данных после обновления со старинных версий:

Город: код

Область: страна

Страна: область

Код: город

 

 

Скопируйте config.php в config2.php и в конец config2.php перед "?>" добавьте:

 

$resultdata = mysql_query("select * from acc");

while($iddata = mysql_fetch_assoc($resultdata)) {

if (is_numeric($iddata["city"])) {

mysql_query("update acc set country='$iddata[region]', city='$iddata[thecode]', region='$iddata[country]', thecode='$iddata[city]' where ID='$iddata[iD]'") or die(mysql_errno($connect).mysql_error($connect));

}

}

 

Однократно запустите config2.php, должно помочь.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Итак, проблема

 

Checking database structure with /admin/conf/database.php: something wrong!

 

city!==region at acc!

country!==city at acc!

thecode!==country at acc!

region!==thecode at acc!

city!==region at domen!

country!==city at domen!

thecode!==country at domen!

region!==thecode at domen!

 

скрипт

 

// ######################################################## //

// Работа #1

// ######################################################## //

 

// ######################################################## //

// Работа #2

// ######################################################## //

 

приводит к другой проблеме:

 

Блин, после выполнения этих операций поменялись местами код региона в телефоне и город, сбились настройки страны. А вместо области теперь пишет RU.

 

затем romodos решил свою проблему так:

 

У меня там немного не те поля надо было переставлять, но я подредактировал скрипт - запустил, теперь вроде все ок.

 

 

подскажите скрипт который бы исправил проблему сразу, а не с "немного ручным редактированием другого скрипта-примера"

 

благодарю

Ссылка на комментарий
Поделиться на другие сайты

Выполните откат и базы и

 

Для дальнейшего исследования проблемы необходимо следующее:

1. URL скрипта.

2. Данные доступа в админ-центр биллинга, проверка по IP адресу должна быть отключена;

3. Данные доступа на FTP с биллингом;

4. URL темы на форуме forum.advanta.org.

На admin @ advanta.org

 

Сделаю как надо и вживлю код в апдейтер базы, дополнительно выложу скрипт здесь.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...