一次提交多行mysql

时间:2011-04-16 13:20:10

标签: php mysql rows

我有一个php生成的表单:

 <form action='step2.php' method="post" name='frm<? echo $socialid; ?>' id="frm_step2">
       <?
      $result = mysql_query("SELECT * FROM socials WHERE network not in (SELECT network FROM networks WHERE user='$_SESSION[user_id]') ");

while($socialrow = mysql_fetch_assoc($result)){

    $socialid=$socialrow['id'];
    $socialnet=$socialrow['network'];
    ?>
   <a href="#" class="edit_<? echo $socialnet;?>"><img src="smallicons/<? echo $socialnet;?>.png" width="30" alt="<? echo $socialnet;?>" /></a>
    <div class="table_<? echo $socialnet;?>">the full url to your <? echo $socialnet;?> profile:<br />
    <input type='hidden' value='<? echo $socialnet;?>' name='network'/>
     <input type='text' name='urltonet'/> <br/>
    </div>

<?
}
    ?>
  <br />  <input type='submit' value='enter' />
  </form>  

基本上,对于数据库中的每个社交网络,它都会创建一个表单,用户需要在其中填写其个人资料 因此,如果用户仍需填写2个网络网址,则会显示两个表单,每个表单一个,提交一个按钮

因此,如果用户填写两个文本框,则需要在同一个数据库中插入这些值

有关如何插入这些值的任何想法或帮助吗? 在我的数据库下面:

CREATE TABLE IF NOT EXISTS `networks` (
`user` int(30) NOT NULL,
`network` varchar(30) NOT NULL,
`username` varchar(30) NOT NULL default 'not known',
`url` varchar(300) NOT NULL,
`user_name` varchar(30) NOT NULL,
`netid` int(11) NOT NULL auto_increment,
PRIMARY KEY (`netid`),
UNIQUE KEY `netid` (`netid`),
UNIQUE KEY `netid_2` (`netid`),
UNIQUE KEY `netid_3` (`netid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=239 ;

2 个答案:

答案 0 :(得分:0)

就语法而言,你可以使用它,不知怎的,我觉得这不是你想知道的

insert into networks (user,network,url) values (1,'network1','username1'), (1,'network2','title2')

答案 1 :(得分:0)

SQL Server和Oracle上的技巧是使用union all

INSERT INTO MyTable (FirstCol, SecondCol)
SELECT 'First' ,1
UNION ALL
SELECT 'Second' ,2
UNION ALL
SELECT 'Third' ,3
UNION ALL
SELECT 'Fourth' ,4
UNION ALL
SELECT 'Fifth' ,5

我想这也适用于MySQL