J'utilise le framework Codeigniter et j'ai un formulaire avec des champs de saisie. Quand je veux insérer les valeurs des champs entrées dans la base de données que j'utilise ce codeInsérer des données de foreach à la base de données en PHP
function add($tableName)
{
$fieldsData = $this->db->field_data($tableName); // to get all fields name of the table like (id,title,post ..)
foreach ($fieldsData as $key => $field)
{
$datacc = array( $field->name => $this->input->post($field->name));
echo $this->input->post($field->name) ; // when I submit the form I get all that data I need like (mySubjet, MyPost...)
} // but when I insert the data it insert just the last filed like (cat_id = 3) only !// and the other fields are empty ..
$this->db->insert($tableName, $datacc);
}
donc je ne reçois que la dernière valeur insérée dans la base de données, mais quand je mets la ligne d'une requête dans la boucle foreach
comme:
function add($tableName)
{
$fieldsData = $this->db->field_data($tableName);
$datacc = "";
foreach ($fieldsData as $key => $field)
{
$datacc = array( $field->name => $this->input->post($field->name));
$this->db->insert($tableName, $datacc); // inside the loop !
}
}
insère 15 enregistrements/lignes (le nombre de champs dans la table) et insère une valeur unique pour chaque ligne. Insère le champ TITLE
dans la première ligne, le champ POST
dans la ligne suivante et le champ dateOfpost
dans le troisième et ainsi de suite.
WaW! .. Je ne peux pas en croire mes yeux .. Enfin ça marche !! Gregmac Merci SO SO Tellement .. Je me suis fatigué de ce code que j'ai essayé des centaines de fois pendant 3 jours 12 heures/jour! J'apprécie vraiment votre aide .. et je ne l'oublierai pas! :) –