I'm trying to save several objects from predefined data. It saves only first set of data or if I change code it saves data as "array". Here is the code:
<?php
$category = array(
'Account/Profile',
'Blogs',
);
$question = array(
'How do I change my email notifications',
'How do I edit my profile details',
'What is a blog?',
);
$answer = array(
'<p>To change your email notifications</p>',
'<p>To change your profile details</p>',
'<p>A weblog, or blog, is.</p>',
);
$questionCount = count($question);
for ($i = 0; $i <= $questionCount; $i++) {
$faq = new Object();
$faq->category = $category[$i];
$faq->question = $question[$i];
$faq->answer = $answer[$i];
}
$didSave = $faq->save();
How can I pull data from arrays and create multiple objects using that data?
Here you go....
$cats = array('Account/Profile', 'Blogs');
$question = array(
'How do I change my email notifications',
'What is a blog?',);
$answer = array(
'<p>To change your email notifications you can do so from notifications page</p>',
'<p>A weblog, or blog, is arguably one of the fundamental DNA pieces of most types of social networking site.</p>',);
//Then count the questions and iterate
for($i=0;$i<=count($question);$i++)
{
$object = New Object; //Your object class
//NEW OBJECT TO SAVE, I call it object, but you have to fill this in,
//with whatever class/object it is youre creating, and saving
$object->category = $cats[$i];
$object->question = $question[$i];
$object->answer = $answer[$i];
$object->save();
}
NEW EDIT BASED ON YOUR REPOST
for($i=0;$i<=count($question);$i++)
{
$faq = new ElggObject();
$faq->subtype = 'faq';
$faq->container_guid = $CONFIG->site_guid;
$faq->owner_guid = $CONFIG->site_guid;
$faq->category = $cats[$i];
$faq->question = $question[$i];
$faq->answer = $answer[$i];
$faq->access_id = $access;
if($faq->save()) {
system_message(elgg_echo("faq:add:success"));
} else {
register_error(elgg_echo("faq:add:error:save"));
}
}