2013-07-05 86 views
0

我有一個輸入字段,用戶可以在1-22之間指定一個數字。現在讓我們說他們進入14.然後我想插入14行。什麼是最好的方法來做到這一點?無論是SQL還是PHP。用SQL/PHP插入多行

$current_number_of_ranks = 7; 
$number_of_ranks = 14; 

INSERT INTO ranks (c_id, name) VALUES (67, '(new rank)') 

編輯:另外,可以說,那裏有目前7行與C_ID 67,他們進入數字9。我只想插入2行。

編輯:這只是一個例子。除了搞清楚如何插入多行外,我得到了一切工作。我需要幫助的是如何插入多行。

+1

他們會插入14行?什麼?隨機數據?還是你要問用戶他想插入什麼? – jsedano

+0

然後,您還需要選擇事先插入來知道該給定ID已存在多少行。 – Prix

+0

我已經這樣做了。這只是一個例子。 – PopeyeDoyle

回答

0

有了,你有一個很好的理由隨​​機插入的假設..

您可以在查詢放入一個循環

$number_of_ranks = 14; 
for ($i=0; $i<$number_of_ranks; $i++) { 
    mysqli_query("INSERT INTO ranks (c_id, name) VALUES (67, '(new rank)')"); 
    //use normal db class if you have written one of course 
} 
+1

這不是實現它的最佳方式。由於性能的原因,在循環中執行任何類型的查詢通常都會被忽視。 –

2

你應該使用MySQL多重插入:

$number_of_ranks = 14; 

$value = implode(',', array_fill(0, $number_of_ranks, "(67, '(new rank)')")); 
$query = 'INSERT INTO ranks (c_id, name) VALUES ' . $value; 
// then execute the query 

$query的結果將爲:

"INSERT INTO ranks (c_id, name) VALUES (67, '(new rank)'),(67, '(new rank)'),(67, '(new rank)'),(67, '(new rank)'),(67, '(new rank)'),(67, '(new rank)'),(67, '(new rank)'),(67, '(new rank)'),(67, '(new rank)'),(67, '(new rank)'),(67, '(new rank)'),(67, '(new rank)'),(67, '(new rank)'),(67, '(new rank)')"