2014-10-16 61 views
0

喜来有这样插入到数据库中的数据从一个循环(同时)

for ($i=0; $i<=count($query)+1 ; $i++) 
{ 
$sql ="SELECT * FROM $tabella[$i] WHERE id='1'"; 
$result=mysql_query($sql); 
$numrows=mysql_num_rows($result); 

while($row = mysql_fetch_array($result)) 
{ 
$name=$row['name']; 
$surname=$row['surname']; 

INSERT INTO student (name,surname) Values ($name,$surname) 
} 

} 

代码,只从他找到的第一个表中插入数据,所以只有一个名字和一个姓,而不是全部$ name和$姓与ID = 1

我怎样才能解决这个问题

+0

ext/mysql已弃用。考虑切换到一个更新的库。 – Gordon 2014-10-16 16:42:02

+1

我认为你应该考虑使用[INSERT ... SELECT](http://dev.mysql.com/doc/refman/5.1/en/insert-select.html)而不是while循环。 – 2014-10-16 16:51:52

+0

替换$ sql =“SELECT * FROM $ tabella [$ i] WHERE id ='1'”; for $ sql =“SELECT * FROM $ tabella [$ i] WHERE id = $ i”; – kraysak 2014-10-16 16:52:09

回答

0

下面是编辑你的脚本和可能出现的问题我fouund:

for ($i=0; $i<=count($query)+1 ; $i++)   //Why is there a +1? 
{ 
$sql ="SELECT * FROM $tabella[$i] WHERE id='1'"; //Your issue could be here, tabella[$1] 
$result=mysql_query($sql);      //may not be totally there 
$numrows=mysql_num_rows($result);    //Try to echo your SELECT $sql query 
               //to check 

               //Why do you have $numrows? I dont see 
               //that being used anywhere 

while($row = mysql_fetch_array($result)) 
{ 
$name=$row['name']; 
$surname=$row['surname']; 

INSERT INTO student (name,surname) Values ($name,$surname) //Your INSERT statement 
                  //looks ok 
                  //Try to use single/or double 
                  //quotes around the values 
                  //I like having `name`, 
                  //`surname` around fields 
} 

} 

查看此评论。建议您使用Prepared/or PDO,但在大多数情况下,使用直接mysql功能的网站 较旧或已编码,因此 并不是重做的任何更改;它的很多工作。当你开始新鲜时,这很有意义。希望能帮助到你。

相关问题