Задать вопрос

Циклическая вставка в MySQL таблицу из другой таблицы

Здравствуйте. Нужна помощь в такой проблеме:

В БД Joomla 2.5 имеется таблица table1, данные из которой php-скриптом вставляем в таблицу table2. Но в поле `asset_id` таблицы table2 мне нужно вставить СВОЁ значение с увеличением на единицу для каждой последующей записи при вставке.

Есть код. Все вставляется. Но в поле `asset_id` в каждую строку постоянно вставляется лишь первое значение счетчика и приращения на единицу не происходит.

Подскажите, где ошибка?

Код:
include 'configuration.php';
$config = new JConfig;
$link = mysqli_connect($config->host, $config->user, $config->password)or die('db not found');
/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}
else {
echo "Connect";
}
mysqli_select_db($link, $config->db)
or die('db not found');

for($key=0;$key<265;$key++){
$myasset = $key+50; // учитываем уже имеющиеся значения asset_id в таблице table2
$insert = "INSERT INTO `table2` (
`id`, 
`asset_id`, 
`title`
) 
SELECT 
`id`, 
'".$myasset."' ,
`title`
FROM `table1` ";
$result = mysqli_query($link, $insert);
}
mysqli_close($link);
  • Вопрос задан
  • 3496 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
У Вас запрос не верный!
Смотрите, Вы 265 раз данные из таблицы `table1` перекидываете в таблицу `table2`
В вашем случае достаточно один раз выполнить запрос из переменной $insert с поправкой:
INSERT INTO `table2` (`id`,`asset_id`,`title`) SELECT `id`,`asset_id`+1 ,`title` FROM `table1`

Или, если Вам надо учесть старший `asset_id` и он равен 50
INSERT INTO `table2` (`id`,`asset_id`,`title`) SELECT `id`,`asset_id`+50+1 ,`title` FROM `table1`
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
а asset_id auto_increment нельзя задать?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы