Добавяне на множество записи

nom3r1

Registered
Искам да взимам въпросното s_id, автоматично от друга таблица с име: `table2`, в която има колони: sid | name | ip

След, което искам при подаване на заявката от странна на потребителя, да взима `sid` от `table2` и да ги добавя в колона `s_id` на таблица: `table`

В момента заявките са така, но при нови услуги трябва всеки път да се редактира кода и да се добавя въпросната услуга.

PHP:
mysql_query("INSERT INTO `table` (user_id, s_id, columb) VALUES ('{$userid}', '1', 'xa');") or die(mysql_error());
mysql_query("INSERT INTO `table` (user_id, s_id, columb) VALUES ('{$userid}', '2', 'xa2');") or die(mysql_error());
mysql_query("INSERT INTO `table` (user_id, s_id, columb) VALUES ('{$userid}', '3', 'xa3');") or die(mysql_error());
mysql_query("INSERT INTO `table` (user_id, s_id, columb) VALUES ('{$userid}', '4', 'xa2');") or die(mysql_error());
mysql_query("INSERT INTO `table` (user_id, s_id, columb) VALUES ('{$userid}', '5', 'xa3');") or die(mysql_error());

Накратко: Взимаме `s_id` от таблица `table2` и го добавяме в таблица `table`, без да редактираме кода всеки път, когато добавим нова услуга.

Мислех да ги вкарам в един цикъл нещо такова:

PHP:
$query = mysql_query("SELECT `sid` FROM `table2`;") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
	mysql_query("INSERT INTO `table` (user_id, s_id, columb) VALUES ('{$userid}', '{$row['sid']}', 'xa');") or die(mysql_error());
}

Но се получава .. как да го нарека.. мацаница! Защо? Защото горния код трябва да го вкарам в още един цикъл, което не мисля, че е нужно и кода ще работи по-бавно, а може би греша?

П.П. Мислех да го направя и чрез функция /нещо такова/:

PHP:
function add_s($UserID) {
	$query = mysql_query("SELECT `sid` FROM `table2`;") or die(mysql_error());
	while($row = mysql_fetch_array($query)) {
		mysql_query("INSERT INTO `table` (user_id, s_id, columb) VALUES ('{$userid}', '{$row['sid']}', 'xa');") or die(mysql_error());
	}
}
//code//
add_s($userid);
//code//
 

vik96

Registered
Не ти схванах идеята точно ,но мисля ,че това ще помогне ;)
Код:
<?
$query = mysql_query("SELECT `sid` FROM `table2`;") or die(mysql_error());

$ar = array();
$userid = 9000;
while($row = mysql_fetch_array($query)) 
{
        $ar[] = "('$userid', '$row[sid]', 'xa')";
}

mysql_query("INSERT INTO `table` (user_id, s_id, columb) VALUES ".implode(",",$ar).";") or die(mysql_error());

?>
 

nom3r1

Registered
Идеята ми е вместо да редактирам файла при нова услуга и да добавям заявката да става "автоматично" един вид да изпълнява същата работа, но по "автоматичен път".
 

Горе