Je suis frais à codédiciter. J'ai une forme qui ressemble à quelque chose comme ça.
$name=$_POST['Name']; $address=$_POST['Address']; $age=$_POST['Age']; $email=$_POST['Email']; $count = count($_POST['Name']); for($i=0; $i<$count; $i++) { $data = array( 'name' => $name[$i], 'address' => $address[$i], 'age' => $age[$i], 'email' => $email[$i], ); $this->db->insert('mytable', $data); }
3 Réponses :
Le formulaire que vous montrez créera un tableau $ _Post avec des index de nom, adresse, âge et email. Chacun de ceux-ci contiendra le n nombre de "lignes" votre formulaire fournit. Par exemple:
for($y=0;$y<count($person);$y++){ $this->db->insert('mytable',$person[$y]; }
Quelles erreurs sont lancées? J'ai corrigé une erreur de syntaxe avec $ ceci-> entrer-> post {"nom"); code> ci-dessus.
Fait ça! Une partie d'un appel AJAX avec une fonction de retour complexe, c'est pourquoi cela a dû substituer un exemple plus simple ci-dessus. Voir ma réponse ci-dessous. Ne semble pas être la voie du codécrecteur.
Il semble que $ ceci-> entrée-> post () code> ne fonctionne pas comme un tableau, alors l'appelant avec un index ne fonctionne pas. Il n'y a rien de mal avec votre réponse postée. L'un des avantages du codédiciteur est la flexibilité. Vous pouvez exécuter PHP régulier aux côtés de fonctions intégrées.
Faites votre forme comme ceci:
foreach($_POST['user'] as $user) { $this->db->insert('mytable', $user); }
Lors de l'analyse plus étroite, il ressemble beaucoup à la solution de KevTrout, ceci-> peut-être-> plus-> élégant (); Doit en apprendre davantage sur les tableaux.
Regardez un coup d'oeil à insertion_batch () code> méthode [ codeigniter.com/user_guide /database/active_record.html]
Plusieurs inserts d'insertion / lot sont maintenant pris en charge par le codeigniter. Il tirait une requête plutôt que de tirer trop de requêtes.
$data =array(); for($i=0; $i<$count; $i++) { $data[$i] = array( 'name' => $name[$i], 'address' => $address[$i], 'age' => $age[$i], 'email' => $email[$i], ); } $this->db->insert_batch('mytable', $data);
Cela suppose que le pilote le soutient. Cela ne fonctionne pas avec le codédiciter 2.1.4 et le pilote SQLSRV.
Voir ma solution Stackoverflow.com/a/14332078/1045444 ... Vous avez accepté la solution qui n'est pas la plus efficace ... Nous devrions utiliser insertion_batch ();
@Somnathmuluk vous êtes correct. S'il vous plaît voir la question liée que j'ai posée plus tard Stackoverflow.com/Questtions/4166146/...