Я хотел бы прочитать данные из одной таблицы моего db (SELECT со страниц) и скопировать их в несколько таблиц в соответствии с INSERT. Мой скрипт отлично работает, когда Im копирует в ту или иную таблицу, но когда я запускаю ее, как показано ниже, она копирует данные только в первую. Могут ли вы, ребята, помочь мне?php multiple mysql inserts
<?php
// Pripojenie na databazu s overenim pripojenia
$con = mysql_connect('localhost:8501' , 'root', '');
if(!$con) {
die("Nepripojene ".mysql_error());
}
// Vyber databazy ikarus2 s overenim vyberu
$db = mysql_select_db('ikarus2',$con);
if(!$db) {
die('Ziadny pristup k db ikarus2!'.mysql_error());
}
// MySQL SELECT from pages
$result = mysql_query('SELECT uid, t3ver_oid, t3ver_id, t3ver_wsid, t3ver_label, t3ver_state, t3ver_stage,
t3ver_count, t3ver_tstamp, t3_origuid, tstamp, crdate, cruser_id,
title, hidden, starttime, endtime, deleted, subtitle, nav_title, media, keywords, description, abstract, author, author_email,
tx_impexp_origuid, tx_realurl_pathsegment, doktype, url, urltype, shortcut, shortcut_mode, t3ver_move_id, sorting,
layout, fe_group FROM pages',$con);
// MySQL INSERT into pages_language_overlay
while ($row = mysql_fetch_array($result)){
$insertoverlay = "INSERT INTO pages_language_overlay(pid, t3ver_oid, t3ver_id, t3ver_wsid, t3ver_label, t3ver_state, t3ver_stage,
t3ver_count, t3ver_tstamp, t3_origuid, tstamp, crdate, cruser_id, sys_language_uid, title, hidden, starttime, endtime,
deleted, subtitle, nav_title, media, keywords, description, abstract, author, author_email, tx_impexp_origuid, tx_realurl_pathsegment,
doktype, url, urltype, shortcut, shortcut_mode)
VALUES ('$row[0]','$row[1]','$row[2]','$row[3]','$row[4]','$row[5]','$row[6]','$row[7]','$row[8]',
'$row[9]','$row[10]','$row[11]','$row[12]','5', '$row[13]','$row[14]','$row[15]','$row[16]','$row[17]','$row[18]',
'$row[19]','$row[20]','$row[21]','$row[22]','$row[23]','$row[24]','$row[25]','$row[26]','$row[27]','$row[28]',
'$row[29]','$row[30]','$row[31]','$row[32]')";
mysql_query($insertoverlay,$con);
}
// MySQL INSERT into tt_content
while ($row = mysql_fetch_array($result)){
$insertcontent = "INSERT INTO tt_content(pid, t3ver_oid, t3ver_id, t3ver_wsid, t3ver_label, t3ver_state, t3ver_stage, t3ver_count,
t3ver_tstamp, t3ver_move_id, t3_origuid, tstamp, crdate, cruser_id, hidden, sorting, media, layout,
deleted, starttime, endtime, fe_group, sys_language_uid, tx_impexp_origuid)
VALUES ('$row[0]','$row[1]','$row[2]','$row[3]','$row [4]','$row[5]','$row[6]','$row[7]','$row[8]',
'$row[33]','$row[9]','$row[10]','$row[11]','$row[12]','$row[14]','$row[34]','$row[20]','$row[35]','$row[17]',
'$row[15]','$row[16]','$row [36]','5','$row[26]')";
mysql_query($insertcontent,$con);
}
?>
То, что вы, вероятно, хотите, также доступно в простом SQL, вы можете иметь команду вставки, которая работает с выбранным набором результатов. [MySQL INSERT ... SELECT] (http://dev.mysql.com/doc/refman/5.0/en/insert-select.html) – ppeterka
Функции 'mysql_ *' ** больше не поддерживаются ** и должны 't использоваться в любой новой кодовой базе. Он постепенно прекращается в пользу новых API.Вместо этого вы должны использовать [** подготовленные заявления **] (https://www.youtube.com/watch?v=nLinqtCfhKY) с помощью [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/msqli). –