Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Data Model Questions /

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Strange problem with LEFT JOIN


Go to End


3 Posts   2210 Views

Avatar
Victor

Community Member, 128 Posts

30 November 2009 at 2:46am

Edited: 30/11/2009 2:48am

The following external (not SilverStripe) php script works:

$query ="SELECT * FROM `CalendarDateTime` JOIN `SeminarDateTime` ON CalendarDateTime.ID=SeminarDateTime.ID JOIN `SeminarEvent` ON CalendarDateTime.EventID=SeminarEvent.ID ORDER BY StartDate,StartTime";
$result = mysql_query($query);

and the following SilverStripe snippet works

$resultss = DataObject::get("CalendarDateTime","");

but when I try to extend it (even in shorter version)

$resultss = DataObject::get("CalendarDateTime"," "," ", "LEFT JOIN `SeminarDateTime` ON `CalendarDateTime`.ID=`SeminarDateTime`.ID" );

it returns an error

Any ideas what I am doing wrong? Thank you in advance

Victor

Avatar
Willr

Forum Moderator, 5523 Posts

30 November 2009 at 9:03am

Edited: 30/11/2009 9:03am

it returns an error

Whats the error?

Avatar
Victor

Community Member, 128 Posts

30 November 2009 at 10:31am

Here I am really puzzled: if I comment out

//Director::set_environment_type("dev");

then as I wrote snippet
$resultss = DataObject::get("CalendarDateTime","");

works as expected (albeit it is not my goal). But in "dev" mode even working code blows up
[Warning] Missing argument 1 for HomePage_Controller::doSeminarSearchAll()
GET /testsite/

Line 23 in /Applications/MAMP/htdocs/testsite/misc/code/HomePage.php

Source

14 return new Form(
15 $this,
16 "SeminarSearchFormAll",
17 "",
18 new FieldSet( new FormAction('doSeminarSearchAll','Display All Seminars'))
19 );
20 }
21 
22 
23 function doSeminarSearchAll($data,$form){
24 $results = new DataObjectSet();
25 $resultss = DataObject::get("CalendarDateTime",""); 
26 //$resultss = DataObject::get("`CalendarDateTime`","","", "LEFT JOIN `SeminarDateTime` ON `CalendarDateTime`.ID=`SeminarDateTime`.ID LEFT JOIN `SeminarEvent` ON `CalendarDateTime`.EventID=`SeminarEvent`.ID" );
27 //$resultss = DataObject::get("CalendarDateTime", "", "", "LEFT JOIN `SeminarDateTime` ON `CalendarDateTime`.ID=`SeminarDateTime`.ID" );
28 $results->merge($resultss);
29 return $this->customise(array('SeminarSearchResults' => $results))->renderWith(array('SeminarSearch_results'));
Trace

HomePage_Controller->doSeminarSearchAll() 
call_user_func_array(Array,Array) 
Line 408 of ViewableData.php
ViewableData->XML_val(doSeminarSearchAll,,1) 
Line 175 of .cache.Applications.MAMP.htdocs.testsite.misc.templates.Layout.HomePage.ss
include(/private/var/tmp/silverstripe-cache-Applications-MAMP-htdocs-testsite/.cache.Applications.MAMP.htdocs.testsite.misc.templates.Layout.HomePage.ss) 
Line 354 of SSViewer.php
SSViewer->process(HomePage_Controller) 
Line 346 of SSViewer.php
SSViewer->process(HomePage_Controller) 
Line 175 of Controller.php
Controller->handleAction(HTTPRequest) 
Line 129 of RequestHandler.php
RequestHandler->handleRequest(HTTPRequest) 
Line 122 of Controller.php
Controller->handleRequest(HTTPRequest) 
Line 29 of ModelAsController.php
ModelAsController->handleRequest(HTTPRequest) 
Line 44 of RootURLController.php
RootURLController->handleRequest(HTTPRequest) 
Line 277 of Director.php
Director::handleRequest(HTTPRequest,Session) 
Line 121 of Director.php
Director::direct(/) 
Line 118 of main.php