我想使用提交按钮在数据库中插入多行, 这是我的观看代码
@Entity
@Table(name = "tbl_user")
public class UserTO implements Serializable {
private static final long serialVersionUID = -4082995725312571363L;
@Id
@GeneratedValue(generator = "system-uuid")
@GenericGenerator(name = "system-uuid", strategy = "uuid")
@Column(name = "USER_ID")
private String userId;
@Column(name = "USER_EMAIL")
private String userEmail;
@Column(name = "USER_PASSWORD")
private String userPassword;
@Column(name = "USER_NAME")
private String userName;
@Column(name = "USER_GENDER")
private String userGender;
@Column(name = "USER_DOB")
private Date userDOB;
@Column(name = "USER_CONTACT")
private String userContact;
@Column(name = "USER_ADDRESS")
private String userAddress;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserEmail() {
return userEmail;
}
public void setUserEmail(String userEmail) {
this.userEmail = userEmail;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserGender() {
return userGender;
}
public void setUserGender(String userGender) {
this.userGender = userGender;
}
public Date getUserDOB() {
return userDOB;
}
public void setUserDOB(Date userDOB) {
this.userDOB = userDOB;
}
public String getUserContact() {
return userContact;
}
public void setUserContact(String userContact) {
this.userContact = userContact;
}
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
}
这是我的控制器代码
<?php
foreach($role_array as $k =>$v)
{
//var_dump($k);
if($k != "bookin_operator" && $k!= "production_manager" && $k != "client" && $k != "admin" )
{
?>
<div class="row-fluid">
<div class="span6">
<div class='control-group'>
<label for='<?php echo $k; ?>' class='control-label'><?php echo $v ;?></label>
<div class='controls'>
<select class='form-control' name='<?php echo $k; ?>[]' id='<?php echo $k; ?>' multiple='multiple' size='5'>
<?php
foreach($all_datas[$k] as $datas )
{
$username = "{$datas->nickname}";
echo "<option value='{$datas->id}'>{$username}</option>";
}
?>
</select>
<label for="<?php echo $k; ?>" class="error" style="display:none"></label>
</div>
</div>
</div>
</div>
<?php }} ?>
$ data output
$roles = $this->utility->roles;
foreach($roles as $k => $v)
{
if($k != "bookin_operator" && $k!= "production_manager" && $k != "client" && $k != "admin" && isset($post_data[$k]))
{
$userrole = $k;
$post_user=isset($post_data[$k])?$post_data[$k]:'';
if (count($post_user) > 0)
{
for ($i = 0; $i < count($post_user); $i++)
{
$data = array("journal_id" => $new_journal_id,"user_role" => $userrole,"user_id" =>$post_user[$i]);
// var_dump($data);
$flag = true;
}
}
}
}
if(isset($flag))
{
$v=$this->JournalUsers->addJournalUser($data);
}
但是,当插入数据时,只会在表上插入一行。
array(3) {
["journal_id"]=>int(83)
["user_role"]=>
string(15) "quality_checker"
["user_id"]=>
string(3) "136"
}
array(3) {
["journal_id"]=>
int(83)
["user_role"]=>
string(5) "texer"
["user_id"]=>
string(3) "103"
}
array(3) {
["journal_id"]=>
int(83)
["user_role"]=>
string(5) "texer"
["user_id"]=>
string(3) "133"
}
array(3) {
["journal_id"]=>
int(83)
["user_role"]=>
string(5) "texer"
["user_id"]=>
string(3) "132"
}
array(3) {
["journal_id"]=>
int(83)
["user_role"]=>
string(10) "typesetter"
["user_id"]=>
string(3) "109"
}
array(3) {
["journal_id"]=>
int(83)
["user_role"]=>
string(10) "typesetter"
["user_id"]=>
string(3) "153"
}
我想在db
中插入所有数据答案 0 :(得分:4)
这里$ data每次都重新初始化。像这样更新代码:
$data = array();
$roles = $this->utility->roles;
foreach($roles as $k => $v)
{
if($k != "bookin_operator" && $k!= "production_manager" && $k != "client" && $k != "admin" && isset($post_data[$k]))
{
$userrole = $k;
$post_user=isset($post_data[$k])?$post_data[$k]:'';
if (count($post_user) > 0)
{
for ($i = 0; $i < count($post_user); $i++)
{
$data[] = array("journal_id" => $new_journal_id,"user_role" => $userrole,"user_id" =>$post_user[$i]);
// var_dump($data);
$flag = true;
}
}
}
}
if(isset($flag) && !empty($data))
{
$v=$this->JournalUsers->addJournalUser($data);
}
在模型循环中如下:
public function addJournalUser($data) {
foreach ($data AS $row) {
// execute your insertion query with variable row
}
}
答案 1 :(得分:0)
你也可以在模型中使用insert_batch,不需要foreach
$data = array(
array(
'title' => 'My title' ,
'name' => 'My Name' ,
'date' => 'My date'
),
array(
'title' => 'Another title' ,
'name' => 'Another Name' ,
'date' => 'Another date'
)
);
$this->db->insert_batch('mytable', $data);