I have DB in SQL Server and I execute it with Laravel. However, I get the following error.
ParseError syntax error, unexpected ' ' (T_STRING), expecting ']'
I am trying to figure out why this is happening. It shows this syntax error, but I don't understand it. I can't find a typo. I read and update SQL Server database. Is there a bug or something?
$siswa_regNo = DB::table('upload_tbpendaftaran$')
->select('Reg_No', 'F_Name',
'N_Name',
'Place',
'Birthday',
'BirthID',
'Gender',
'Bloods',
'Glass',
'Height',
'Weight',
'Child_No',
'Child_Qty',
'School_Code',
'School_Name',
'School_Address',
'School_Distric',
'School_Distric_Desc',
'School_City',
'School_City_Desc',
'School_Province',
'School_Province_Desc',
'School_NEM_Avg',
'School_STTB',
'Certificate_ID',
'Stay',
'Stay_Address',
'Stay_RT',
'Stay_RW',
'Stay_Village',
'Stay_Distric',
'Stay_Distric_Desc',
'Stay_City',
'Stay_City_Desc',
'Stay_Province',
'Stay_Province_Desc',
'Stay_Phone',
'Stay_HP',
'Stay_Postal',
'Stay_Longitude',
'Stay_Latitude',
'Home_Address',
'Home_RT',
'Home_RW',
'Home_Village',
'Home_Distric',
'Home_Distric_Desc',
'Home_City',
'Home_City_Desc',
'Home_Province',
'Home_Province_Desc',
'Home_Postal',
'Home_Phone',
'Home_HP',
'Home_HP2',
'Home_Longitude',
'Home_Latitude',
'EMail',
'Email_Parent',
'Email_Parent2',
'ID_Cards',
'Distance',
'Time_HH',
'Time_MM',
'TransportID',
'TransportDesc',
'Remarks',
'NISN',
'ExamUNNo')
->orderBy('Reg_No')
->get();
foreach ($siswa_regNo as $s) {
DB::table('Registration')
->where('Reg_No', $s->Reg_No)
->update([
'F_Name' => $s->F_Name,
'N_Name' => $s->N_Name,
'Place' => $s->Place,
'Birthday' => $s->Birthday,
'BirthID' => $s->BirthID,
'Gender' => $s->Gender,
'Religion' => $s->Religion,
'Citizen' => $s->Citizen,
'FamilyID' => $s->FamilyID,
'Bloods' => $s->Bloods,
'Glass' => $s->Glass,
'Height' => $s->Height,
'Weight' => $s->Weight,
'Child_No' => $s->Child_No,
'Child_Qty' => $s->Child_Qty,
'School_Code' => $s->School_Code,
'School_Name' => $s->School_Name,
'School_Address' => $s->School_Address,
'School_Distric' => $s->School_Distric,
'School_Distric_Desc' => $s->School_Distric_Desc,
'School_City' => $s->School_City,
'School_City_Desc' => $s->School_City_Desc,
'School_Province' => $s->School_Province,
'School_Province_Desc' => $s->School_Province_Desc,
'School_NEM_Avg' => $s->School_NEM_Avg,
'School_STTB' => $s->School_STTB,
'Certificate_ID' => $s->Certificate_ID,
'Stay' => $s->Stay,
'Stay_Address' => $s->Stay_Address,
'Stay_RT' => $s->Stay_RT,
'Stay_RW' => $s->Stay_RW,
'Stay_Village' => $s->Stay_Village,
'Stay_Distric' => $s->Stay_Distric,
'Stay_Distric_Desc' => $s->Stay_Distric_Desc,
'Stay_City' => $s->Stay_City,
'Stay_City_Desc' => $s->Stay_City_Desc,
'Stay_Province' => $s->Stay_Province,
'Stay_Province_Desc' => $s->Stay_Province_Desc,
'Stay_Phone' => $s->Stay_Phone,
'Stay_HP' => $s->Stay_HP,
'Stay_Postal' => $s->Stay_Postal,
'Stay_Longitude' => $s->Stay_Longitude,
'Stay_Latitude' => $s->Stay_Latitude,
'Home_Address' => $s->Home_Address,
'Home_RT' => $s->Home_RT,
'Home_RW' => $s->Home_RW,
'Home_Village' => $s->Home_Village,
'Home_Distric' => $s->Home_Distric,
'Home_Distric_Desc' => $s->Home_Distric_Desc,
'Home_City' => $s->Home_City,
'Home_City_Desc' => $s->Home_City_Desc,
'Home_Province' => $s->Home_Province,
'Home_Province_Desc' => $s->Home_Province_Desc,
'Home_Postal' => $s->Home_Postal,
'Home_Phone' => $s->Home_Phone,
'Home_HP' => $s->Home_HP,
'Home_HP2' => $s->Home_HP2,
'Home_Longitude' => $s->Home_Longitude,
'Home_Latitude' => $s->Home_Latitude,
'EMail' => $s->EMail,
'Email_Parent' => $s->Email_Parent,
'Email_Parent2' => $s->Email_Parent2,
'ID_Cards' => $s->ID_Cards,
'Distance' => $s->Distance,
'Time_HH' => $s->Time_HH,
'Time_MM' => $s->Time_MM,
'TransportID' => $s->TransportID,
'TransportDesc' => $s->TransportDesc,
'Remarks' => $s->Remarks,
'NISN' => $s->NISN,
'ExamUNNo' => $s->ExamUNNo
]);
}
I am very confused, please help.
in second FOREACH, when you are getting data from DB you should add ->first() or ->get() in the last.
foreach ($siswa_regNo as $s) {
DB::table('Registration')
->where('Reg_No', $s->Reg_No)
->first() // this line added
->update([
'F_Name' => $s->F_Name,
'N_Name' => $s->N_Name,
'Place' => $s->Place,
.
.
.
]);
}
or if you want to use ->get() you should foreach to this also...
I am new at using Kendo .
I have searched all over but could not see any hint on using group on kendo grid , with server/client side grouping.
#(Html.Kendo().Grid<TemperatureRecord>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(temperatureRecord => temperatureRecord.RecordId).Width(100);
columns.Bound(temperatureRecord => temperatureRecord.MemberIdentity).Width(150);
columns.Bound(temperatureRecord => temperatureRecord.Location);
columns.Bound(temperatureRecord => temperatureRecord.TemperatureCelcius).Width(200);
columns.Bound(temperatureRecord => temperatureRecord.Remark).Width(300);
})
.Groupable(g => g.Enabled(false))
.ToolBar(toolbar =>
{
toolbar.Save();
})
.Editable(editable => editable.Mode(Kendo.Mvc.UI.GridEditMode.InCell))
.DataSource(dataSource => dataSource
.WebApi()
.Batch(true) // Enable batch updates
.Group(groups => groups.Add(temperatureRecord => temperatureRecord.MemberIdentity))
.Model(model =>
{
model.Id(temperatureRecord => temperatureRecord.RecordId);
})
.Read(read => read.Url(Url.HttpRouteUrl("DefaultApi", new { controller = "TemperatureRecord" })))
.Update(update => update.Url(Url.HttpRouteUrl("DefaultApi", new { controller = "TemperatureRecord" })))
)
)
The code which I have do not show any error on screen but it hangs.
Same thing happens when I manually group the grid on browser.. It hangs.
After a number of tries , I discovered that Model needs to be added on the field which you want to group.
Changed the code to following and it worked
#(Html.Kendo().Grid<IHiS.Noss.Web.Models.TemperatureRecord>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(temperatureRecord => temperatureRecord.RecordId).Width(100).Hidden(true);
columns.Bound(temperatureRecord => temperatureRecord.MemberIdentity).Width(150).Groupable(true).Hidden(true);
columns.Bound(temperatureRecord => temperatureRecord.Location).Width(100);
columns.Bound(temperatureRecord => temperatureRecord.TemperatureCelcius).Width(200);
columns.Bound(temperatureRecord => temperatureRecord.Remark).Width(300);
})
.Groupable(g => g.Enabled(false))
.ToolBar(toolbar =>
{
toolbar.Save(); // The "save" command saves the changed data items
})
.Editable(editable => editable.Mode(Kendo.Mvc.UI.GridEditMode.InCell)) // Use in-cell editing mode
.DataSource(dataSource => dataSource
.WebApi()
.ServerOperation(false)
.Batch(true) // Enable batch updates
.Group(groups => groups.Add(temperatureRecord => temperatureRecord.MemberIdentity))
.Model(model =>
{
model.Id(temperatureRecord => temperatureRecord.RecordId); // Specify the property which is the unique identifier of the model
model.Field(temperatureRecord => temperatureRecord.MemberIdentity);
})
.Read(read => read.Url(Url.HttpRouteUrl("DefaultApi", new { controller = "TemperatureRecord" })).Data("getdate"))
.Update(update => update.Url(Url.HttpRouteUrl("DefaultApi", new { controller = "TemperatureRecord" })))
)
)
Is it possible while creating new users with AvS_Fastsimpleimporter to add more than the standard address ?
Currently my array "data" looks like this
'email' => $kunde['email'],
'_website' => $_website,
'_store' => $_website . 'store',
'confirmation' => '',
'created_at' => $created_at,
'created_in' => 'Import',
'disable_auto_group_change' => 0,
'firstname' => $kunde['name_1'],
'group_id' => 3,
'kontonummer' => $kunde['kontonr'],
'kundennummer' => $kunde['kundennr'],
'lastname' => $lastname,
'password_hash' => $password_hash,
'store_id' => 0,
'website_id' => $country['id'],
'_address_city' => $kunde['ort'],
'_address_country_id' => $kunde['land'],
'_address_fax' => $kunde['fax'],
'_address_firstname' => $kunde['name_1'],
'_address_lastname' => $lastname,
'_address_postcode' => $kunde['plz'],
'_address_street' => $kunde['strasse'],
'_address_telephone' => $_address_telephone,
'_address_vat_id' => $kunde['ust_id'],
'_address_default_billing_' => 1,
'_address_default_shipping_' => 1,
And i want to add a second address with the AvS_Simpleimporter.
I tried to add a second array in data like this:
array_push($data, array(
'email' => null,
'_website' => null,
'_address_city' => checkRequiredInput($address['ort']),
'_address_country_id' => $address['land'],
'_address_firstname' => checkRequiredInputVadr($address['name_1']),
'_address_lastname' => checkRequiredInputVadr($address['name_2']),
'_address_postcode' => checkRequiredInput($address['plz']),
'_address_street' => checkRequiredInput($address['strasse']),
'_address_default_billing_' => 0,
'_address_default_shipping_' => 0,
));
And then executing with
$importer = Mage::getModel('fastsimpleimport/import');
$importer->setIgnoreDuplicates('password_hash')->processCustomerImport($data);
But this currently doesn't work. The second address is added as an extra array to data like this
.... data array
....
'_address_default_billing_' => 1
'_address_default_shipping_' => 1
[0] => 'email' => bla bla
'_website' => bla bla
and so son
Any help ?
Multiple addresses are imported as additional rows. Hence you need to:
'_address_country_id' => array($country1,$country2),
'_address_city' => array($city1, $city2),
....
I am trying to implement an admin module in magento which has a grid in the first page and grids in the tabs while editing the grid entities.
The main grid works fine, but the grids in the tabs are not working fine.
The problem I found while I debugged the code is that, I am loading the collection in the grid with field filtering, ie I am filtering the collection with filter that is the user id. I did this because I need only data of a single user from the table. This made the entire problem, the data in the grid is coming correctly, but the filtering,sorting and searching feature inside grid is not working and returning a 404 not found error page. I tried removing the field filter I added while getting the collection, then it works fine but all the data in the table is coming which is the opposite to my requirement.
Is there any possible solution to this. Here is the way I am trying to do:
protected function _prepareCollection() {
$collection = Mage::getModel('merchant/subscriptions')->getCollection()->addFieldToFilter('user_id', Mage::registry('merchant_data')->getId());
$this->setCollection($collection); //Set the collection
return parent::_prepareCollection();
}
Thanks in advance.
ok My problem is solved there is a mistake in my code. In the grid file the function below was wrong.
public function getGridUrl() {
return $this->getUrl('*/*/transactiongrid', array('user_id',Mage::registry('merchant_data')->getId(), '_current' => true));
}
The correct method was
public function getGridUrl() {
return $this->getUrl('*/*/transactiongrid', array('user_id'=> Mage::registry('merchant_data')->getId(), '_current' => true));
}
Filter action is dependent on your below method:
public function getGridUrl() {
return $this->getUrl('*/*/grid', array('user_id' => Mage::registry('merchant_data')->getId(),'_current'=>true));
}
now this is how you will prepare collection:
protected function _prepareCollection()
{
$regData = Mage::registry('merchant_data');
if(isset($regData))
$regData = $regData->getId();
else
$regData = $this->getRequest()->getParam('user_id');
$collection = Mage::getModel('merchant/subscriptions')->getCollection()->addFieldToFilter('user_id',$regData);
...
When I dumped $regData I got this:
Cubet_Merchant_Model_Merchant Object
(
[_eventPrefix:protected] => core_abstract
[_eventObject:protected] => object
[_resourceName:protected] => merchant/merchant
[_resource:protected] =>
[_resourceCollectionName:protected] => merchant/merchant_collection
[_cacheTag:protected] =>
[_dataSaveAllowed:protected] => 1
[_isObjectNew:protected] =>
[_data:protected] => Array
(
[user_id] => 3
[firstname] => Robin
[lastname] => Cubet
[email] => robin#cubettech.com
[username] => robincubet
[password] => 51a7f45eb11fc49b5967a0039193c3ad:HSX8JkSO5lr3uaRHrzd86i7gb0RATeDb
[created] => 2013-12-12 08:34:28
[modified] => 2013-12-16 09:03:56
[logdate] =>
[lognum] => 0
[reload_acl_flag] => 1
[is_active] => 1
[extra] => N;
[rp_token] =>
[rp_token_created_at] =>
)
[_hasDataChanges:protected] =>
[_origData:protected] => Array
(
[user_id] => 3
[firstname] => Robin
[lastname] => Cubet
[email] => robin#cubettech.com
[username] => robincubet
[password] => 51a7f45eb11fc49b5967a0039193c3ad:HSX8JkSO5lr3uaRHrzd86i7gb0RATeDb
[created] => 2013-12-12 08:34:28
[modified] => 2013-12-16 09:03:56
[logdate] =>
[lognum] => 0
[reload_acl_flag] => 1
[is_active] => 1
[extra] => N;
[rp_token] =>
[rp_token_created_at] =>
)
[_idFieldName:protected] => user_id
[_isDeleted:protected] =>
[_oldFieldsMap:protected] => Array
(
)
[_syncFieldsMap:protected] => Array
(
)
)
Here's my grid
Class year > Course > Student
Problem
1. How can I get the key from the first grid? (classyearID from classyear grid?)
The reason I need it because I have more than 5 class years, but only have 2 courses. so basically those two coursse will exist in every class year. and since I cant get the class yearID, students are reappearing on each class year, please help
check my view below:
#(Html.Telerik().Grid<ClassYear>().HtmlAttributes(new { style = "width: 100%" })
.Name("grdClassYear")
.DataBinding(binding => binding.Ajax()
.Select("GetClassYears", "Home"))
.DataKeys(keys => keys
.Add(o => o.ClassYearID)
.RouteKey("classyearID"))
.Columns(cols =>
{
cols.Bound(c => c.ClassYearDate);
cols.Bound(c => c.Name);
})
.DetailView(course => course.ClientTemplate(
Html.Telerik().Grid<Course>()
.Name("grdCourse_<#= ClassYearID #>")
.DataBinding(dataBinding => dataBinding.Ajax()
.Select("GetCourses", "Home"))
.DataKeys(keys => keys.Add(o => o.CourseID))
.Columns(cols =>
{
cols.Bound(c => c.CourseName);
cols.Bound(c => c.Description);
})
.DetailView(stu => stu.ClientTemplate(
Html.Telerik().Grid<Student>()
.Name("grdStudent_<#= CourseID #>")
.DataBinding(dataBinding => dataBinding.Ajax()
.Select("GetStudentsA", "Home", new { classyearID = "<#= ClassYearID #>", courseID = "<#= CourseID #>" })))
.DataKeys(keys => keys.Add(o => o.PersonID))
.Columns(cols =>
{
cols.Bound(c => c.PersonID).ReadOnly().Hidden();
cols.Bound(c => c.MidshipmenNumber);
cols.Bound(c => c.LastName);
cols.Bound(c => c.FirstName);
})
.Sortable()
.ToHtmlString()
))
Thanks
i am not sure, whether this has been resolved yet or not. but just wants to give answer on it, so it might help somebody.
make your detail grid name as example,
.Name("grdStudent_<#= ClassYearID #>_<#= CourseID #>")
basically, each Detail View name should be unique.