2012-04-19 141 views
0

我遇到了插入相同的值N次的问题在SQL中通过PHP脚本。 我有这vslue?循环插入在PHP中查询

Table Info column (ID,Name, LastName,) 
Valus ('',Alain,Alian); 

Whata我想要做的是在同一个表中插入该值的10倍使用了E.G While循环或类似的 任何想法的东西?

<?php 
    $i=1; 
    While ($i<= 5)  
    { 
     $sql="INSERT INTO arivage 
      (ID_Ship,Date_ariv,Date_achat,prov_id,Sph,cyl,Prod_type,Pord_color) 
      VALUES 
      ('','$date','$date1','$prov_id','$sph','$cyl','$Prod_type','$Pord_color')"; 
     $i++; 
    } 
?> 
+0

最新错误 – Grumpy 2012-04-19 10:19:31

+0

您只能使用查询生成一个字符串。你必须执行查询。使用mysql_query($ sql);在你的while循环中。此外,您必须先连接到数据库,然后才能执行查询。 – 2012-04-19 10:27:11

回答

3

你有一些错误?

你需要的是可行的

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 

for($i = 0; $i<10; $i++) { 
    $sql="INSERT INTO arivage (ID_Ship,Date_ariv,Date_achat,prov_id,Sph,cyl,Prod_type,Pord_color) VALUES ('','$date','$date1','$prov_id','$sph','$cyl','$Prod_type','$Pord_color')"; 
    $result = mysql_query($sql); 
    if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
    } 
} 
0

试试这个。这可能会奏效

$sql= "INSERT INTO TABLE_NAME(field1,field2) VALUES("; 
    for($i=0;$i<10;$i++) 
    { 
     $sql.="('value1', 'value2'), " 
    } 
    $sql.=")"; 
+0

我认为它应该和values(),(),()一样。 。 。等等 – Suleman 2012-04-19 10:29:41

+0

最后一次迭代将添加逗号,并且查询将以('value1','value2'),)结束。我认为这会产生错误。 – 2012-04-19 11:25:45

0

,以便查询周期之间执行,您应该添加

mysql_query($sql); 

你的代码。

$i=1; 
While ($i<= 5)  
{ 
$sql="INSERT INTO arivage 
(ID_Ship,Date_ariv,Date_achat,prov_id,Sph,cyl,Prod_type,Pord_color) 
VALUES('','$date','$date1','$prov_id','$sph','$cyl','$Prod_type','$Pord_color')"; 

mysql_query($sql); 

    $i++; 
} 
1

我假设你有一个到数据库的连接(通过使用mysql_connect()函数+ mysql_select_db()),并组成(通过的mysql_query($的SQL))后还执行查询。

我需要知道什么是列的数据类型ID_Ship?这是PRIMARY KEYauto_increment?如果是,那么你需要查询的改变:

INSERT INTO arivage (ID_Ship,Date_ariv,Date_achat,prov_id,Sph,cyl,Prod_type,Pord_color) 
VALUES ('','$date','$date1','$prov_id','$sph','$cyl','$Prod_type','$Pord_color') 

到:

INSERT INTO arivage (Date_ariv,Date_achat,prov_id,Sph,cyl,Prod_type,Pord_color) 
VALUES ('$date','$date1','$prov_id','$sph','$cyl','$Prod_type','$Pord_color'); 

注:ID_ship被删除, '' 也将被删除。

此删除是为了防止为第2,第3等记录插入相同的主键。请记住,主键必须是唯一的。不指定它会让MySQL插入生成的值(因为它是auto_increment)。