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


Пользователь месяца
TimurR TimurR 1-й за Август
Очков активности: 726 3 темы, 35 сообщений, 11 баллов репутации
ТОП самых активных за этот месяц
  • Фотография ShowPrint
    #1

    ShowPrint (ShowPrint.ru)
    Очков активности: 207 2 темы, 17 сообщений, 6 баллов репутации

  • Фотография Ixman
    #2

    Ixman (o5cat.ru)
    Очков активности: 105 0 тем, 10 сообщений, 7 баллов репутации

  • Фотография WGN
    #3

    WGN (worldgamenews.com)
    Очков активности: 84 Вне конкурса за определение пользователя месяца

  • Фотография magnet
    #4

    magnet (rbfxdirect.com)
    Очков активности: 67.5 Вне конкурса за определение пользователя месяца

  • Фотография TimurR
    #5

    TimurR
    Очков активности: 42 Вне конкурса за определение пользователя месяца

  • Фотография BLIK
    #6

    BLIK
    Очков активности: 39 Вне конкурса за определение пользователя месяца

  • Фотография AnnaYa
    #7

    AnnaYa (topbase.ru)
    Очков активности: 33 2 темы, 5 сообщений, 2 балла репутации

  • Фотография Developer
    #8

    Developer
    Очков активности: 33 2 темы, 16 сообщений, 1 балл репутации

  • Фотография Алексей111
    #9

    Алексей111
    Очков активности: 28.5 5 тем, 4 сообщения, 1 балл репутации

  • Фотография Игорь Ку
    #10

    Игорь Ку (dudesday.ru)
    Очков активности: 24 1 тема, 5 сообщений, 2 балла репутации

  • Показать весь ТОП 10

Kwork.ru - услуги фрилансеров от 500 руб.

Поддержите форум! =)
Апдейты
  • Яндекс тИЦ: 19.11.2017
  • Яндекс выдача: 24.09.2018
Топ 5 участников по репутации


Ошибка при вставке данных в БД Column 'day31' specified twice

#1 Kuchuluk

Kuchuluk
  • Пользователь
  • 333 сообщений
  • Репутация: 5
0

Отправлено 12 July 2018 - 14:16

Здравствуйте. Есть огромная таблица, которая генерируется на сайте. Сделал таблицу в БД MySQL для ее сохранения.

 

 

Формирую запрос к БД в цикле, так как много идентичных полей day1 day2 day3 day4 и т.д.

$sql = "INSERT INTO `" . $_SESSION['graphName'] . "` SET ";
		$counter = 0;
		foreach ($getData as $key => $value) {
			$counter++;
			$i = explode("-", $key);
			$a .= $i[2];
			if ($i[0] == 1 AND $i[2] == 1) {
				$sql .= "`unitId` = '" . $i[1] . "', `workerId` = '" . $i[0] . "', `month` = '" . $i[3] . "', `year` = '" . $year . "', `day" . $i[2] . "` = '{$value}', ";
			} elseif ($counter == $arrayLength) {
				$sql .= "`day" . $i[2] . "` = '{$value}'";
			} else {
				$sql .= "`day" . $i[2] . "` = '{$value}', ";
			}
		}
		$query = mysqli_query($db, $sql) or die(mysqli_error($db));
		if ($query == false) $res = "че то не получилось";
		else $res = "график успешно обновлен";

Запрос по идее формируется правильный: INSERT INTO `cocl_graph` SET `unitId` = '1', `workerId` = '1', `month` = '7', `year` = '2018', `day1` = 'В', `day2` = '9/18', `day3` = '9/18', `day4` = '9/18', `day5` = '9/18', `day6` = '9/18', `day7` = 'В', `day8` = '\u0412', `day9` = '9/18', `day10` = '9/18', `day11` = '9/18', `day12` = '9/18', `day13` = '9/18', `day14` = '\u0412', `day15` = '\u0412', `day16` = '9/18', `day17` = '9/18', `day18` = '9/18', `day19` = '9/18', `day20` = '9/18', `day21` = '\u0412', `day22` = '\u0412', `day23` = '9/18', `day24` = '9/18', `day25` = '9/18', `day26` = '9/18', `day27` = '9/18', `day28` = '\u0412', `day29` = '\u0412', `day30` = '9/18', `day31` = '9\/18', `unitId` = '1', `workerId` = '2', `month` = '7', `year` = '2018', `day1` = '\u0412', `day2` = '9/18', `day3` = '9/18', `day4` = '9/18', `day5` = '9/18', `day6` = '9/18', `day7` = '\u0412', `day8` = '\u0412', `day9` = '9/18', `day10` = '9/18', `day11` = '9/18', `day12` = '9/18', `day13` = '9/18', `day14` = '\u0412', `day15` = '\u0412', `day16` = '9/18', `day17` = '9/18', `day18` = '9/18', `day19` = '9/18', `day20` = '9/18', `day21` = '\u0412', `day22` = '\u0412', `day23` = '9/18', `day24` = '9/18', `day25` = '9/18', `day26` = '9/18', `day27` = '9/18', `day28` = '\u0412', `day29` = '\u0412', `day30` = '9/18', `day31` = '9/18'

 

Но при попытке сохранить выдает ошибку Column 'day31' specified twice


 

 

Сообщение отредактировал Kuchuluk: 12 July 2018 - 14:17

  • 0

#2 fedornabilkin

fedornabilkin
  • Модератор
  • 1127 сообщений
  • Репутация: 189

Отправлено 12 July 2018 - 16:56

Колонка day31 указана дважды, поэтому запрос не может быть выполнен.

Похоже плохо спроектировал структуру БД. Не знаю, что там у тебя надо сделать, но я бы вряд ли стал делать таблицу с таким количеством полей.


  • 0

Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.





Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru