// Fråga 1: Lägg till data från arrayen
$sql = 'INSERT INTO tbl_tags (copy) VALUES ';
$comma = ''; // Inget komma innan första raden
// Bygg frågan
foreach($arr as $item){
$escaped = mysql_real_escape_string($item);
$sql .= "$comma ('$escaped')";
$comma = ',';
}
$sql .= ';';
// Utför fråga 1
mysql_query($sql) or die('Fel vid insättning av arraydata');
// Plocka ut info om det inlagda datat
$firstid = mysql_insert_id(); // id för den första inlagda raden
$lastid = $firstinsertedid + mysql_affected_rows(); // id för den sista inlagda raden + 1 (Så använd < nite <= nedan)
// Bygg frågan
$sql = '
INSERT INTO tbl_tagmap (tagid, photoid)
SELECT t.id AS tagid, 0 AS photoid
FROM tbl_tags t
WHERE id >= $firstid AND ID < $lastid;
';
// Utför fråga 2
mysql_query($sql) or die('Kunde inte lägga in data i tbl_tagmap');
Fråga 1 bör vara ganska självförklarande. Fråga 2 går ut på att du plockar ut samma data från tbl_tags som du just lade in, och lägger in i tbl_tagmap.
photoid har du inte sagt vad du vill ha i, så jag lade värdet 0 där. (SELECT ... 0 AS photoid ...)
PHP-koden är otestad, men utgår från följande SQL. (Jag har inte tillgång att testa PHP där jag är nu, utan bara SQL genom phpmyadmin.) anledningen att jag skrev om den som PHP är att mysql_query inte kan hantera flera queries i samma mysql_query. Använder du mysqli-interfacet bör du kunna använda mysqli_multi_query med följande fråga rakt av. (Indatat måste så kalrt formateras)
INSERT INTO `tbl_tags` (copy)
VALUES
('pelle'),
('johan'),
('johnny')
;
INSERT INTO `tbl_tagmap` (tagid, photoid)
SELECT t.id AS tagid, 0 AS photoid FROM `tbl_tags` t WHERE id >= LAST_INSERT_ID() AND ID < LAST_INSERT_ID() + ROW_COUNT();

