Перейти к содержимому


Invalid table_id в редактировании сотрудников


Сообщений в теме: 2

#1 SysLink

    Активный участник

  • Пользователи
  • PipPipPip
  • 54 сообщений
  • Пол:Мужчина
  • Город:г.Москва

Отправлено 15 Февраль 2012 - 16:49

Обновились с версии 1.9.3 до 1.9.5. Теперь при любом редактировании выскакивает страница с текстом типа:

Цитата

Invalid table_id
#0 get_table_fields(Array ([ID] => 10,[Кто добавил] => 1,[Время добавления] => 2010-05-27 14:28:58,[Статус записи] => 0 ... и т.д.

изменения вносятся, но страница добивает. + выстакивают всплывающие окошки:
  • Выбранной группы доступа не существует. Будет сохранена текущая группа.
  • Выбранной группы доступа не существует. Пользователь не будет добавлен. Введите существующую группу.
  • Не введен логин. Пользователь не будет добавлен.
причем выскакивают они, даже если введел логин, пароль и группа.

Помогите плиз, в программировании не сильно соображаю.
код вычисления сейчас такой:

Цитата

// Автообновление пользователей
$table = data_table("Наши сотрудники","id='$ID'");

if ($table['Логин']) {

// Определяем id группы
$sqlQuery = "SELECT id FROM ".GROUPS_TABLE." WHERE name='".$table['Группа доступа']."'";
$result = mysql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
if ($row = mysql_fetch_array($result)) // если нашли - сохраняем
{
$group_id = $row['id'];
}
else // иначе возвращаем старую по возможности
{
$sqlQuery = "SELECT * FROM ".USERS_TABLE." WHERE login='".$table['Логин']."'";
$result = mysql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
if ($row = mysql_fetch_array($result))
{
echo "<script>alert('Выбранной группы доступа не существует. Будет сохранена текущая группа.')</script>";
$group_id = $row['group_id'];
$sqlQuery = "SELECT name FROM ".GROUPS_TABLE." WHERE id='".$row['group_id']."'";
$result = mysql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
if ($row = mysql_fetch_array($result)) $table['Группа доступа'] = $row['name'];
update_table($table,"Наши сотрудники","id='$ID'");
}
else
{
echo "<script>alert('Выбранной группы доступа не существует. Пользователь не будет добавлен. Введите существующую группу.')</script>";
$group_id = 0;
}
}

if ($group_id)
{
$sqlQuery = "SELECT * FROM ".USERS_TABLE." WHERE login='".$table['Логин']."'";
$result = mysql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
if ($row = mysql_fetch_array($result))
{
$sqlQuery = "UPDATE ".USERS_TABLE." SET fio='".$table['ФИО']."', e_mail='".$table['E-mail']."', login='".$table['Логин']."', ".(($table['Пароль']!="******")?("password='".md5($table['Пароль'])."', "):"")."group_id='".$group_id."' WHERE id='".$row['id']."'";
mysql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
}
else
{
// Предупреждение об ограничении числа пользователей
$sqlQuery = "SELECT * FROM ".USERS_TABLE." WHERE arc=0 ORDER BY id";
$result = mysql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
if (mysql_num_rows($result)>=$config['max_users'])
{
echo "<script>alert('Вы можете добавить в программу не более ".$config['max_users']." пользователей. Новый пользователь не будет добавлен.')</script>";
$group_id = 0;
}
else
{
$sqlQuery = "INSERT INTO ".USERS_TABLE." (fio, e_mail, login, password, date_registr, group_id) VALUES ('".$table['ФИО']."', '".$table['E-mail']."', '".$table['Логин']."', '".md5($table['Пароль'])."', curdate(), '".$group_id."')";
mysql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
$new_user_id = mysql_insert_id();
// добавляем поля для информации о непрочитанных записях
$sqlQuery = "SELECT id FROM ".TABLES_TABLE;
$result = mysql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
while ($row = mysql_fetch_array($result))
{
$sqlQuery = "ALTER TABLE ".DATA_TABLE.$row['id']." ADD u".$new_user_id." TINYINT(1)";
mysql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
$sqlQuery = "UPDATE ".DATA_TABLE.$row['id']." SET u".$new_user_id."=0";
mysql_query($sqlQuery) or user_error(mysql_error()."<br>".$sqlQuery."<br>", E_USER_ERROR);
}
}
}
$table['Пароль'] = "******";
update_table($table,"Наши сотрудники","id='$ID'");
}
}
elseif ($table['Пароль'] or $table['Группа доступа'])
{
echo "<script>alert('Не введен логин. Пользователь не будет добавлен.')</script>";
$group_id = 0;
}

if (!$group_id) {
$table['Логин'] = "";
$table['Пароль'] = "";
$table['Группа доступа'] = "";
update_table($table,"Наши сотрудники","id='$ID'");
}

так же перестала работать статистика. при клике на запись выводится белая страница с текстом "Данный фильтр запрещен." :(
Основатель и экс-директор интернет-магазина с оборотом более миллиарда рублей. Автор книги "Успешный интернет-магазин с нуля". Автор персонального блога, пишу об электронной коммерции и бизнесе в целом. Бизнес-практик и наставник. Куратор и идейный вдохновитель ряда корпоративных веб-разработок. Да и просто хороший позитивный человек! ;)

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 16 Февраль 2012 - 10:05

В коде: замените переменную $table на $sotr.

Цитата

так же перестала работать статистика. при клике на запись выводится белая страница с текстом "Данный фильтр запрещен."
Обновите ревизию, уже исправили это.

И просьба, если выкладываете в сообщении какой-то код, помещайте его в контейнер "Код", а не "Цитата" - так он лучше читается.

#3 SysLink

    Активный участник

  • Пользователи
  • PipPipPip
  • 54 сообщений
  • Пол:Мужчина
  • Город:г.Москва

Отправлено 16 Февраль 2012 - 10:29

Спасибо за помощь! Теперь все работает нормально
Основатель и экс-директор интернет-магазина с оборотом более миллиарда рублей. Автор книги "Успешный интернет-магазин с нуля". Автор персонального блога, пишу об электронной коммерции и бизнесе в целом. Бизнес-практик и наставник. Куратор и идейный вдохновитель ряда корпоративных веб-разработок. Да и просто хороший позитивный человек! ;)





Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных