[FX.php List] "Portal" within a "Portal"?
Joel Shapiro
jsfmp at earthlink.net
Thu Jul 14 14:01:40 MDT 2005
Thanks Dan
Yes, it's the multiple find requests in a portal that's my sticking
point. I was thinking that I would not need to create a join file in
FMP and could just do the joining in PHP (especially since I don't need
to have any relationships within the FM file to view related data in
the php).
It seems to me that this should work, and I can get it to _kind-of_
work -- getting marks for a specific subject -- but the problem is that
it's only for the *last* subject for that student's grade (e.g. If John
has subjects English, History & Science, the php is able to find just
the Science marks, but it puts them under English and History as well
-- It doesn't "stop" at each subject, it seems to loop through and only
capture the last subject. I think I need a different ForEach statement
somewhere.
I'm put 2 samples of the output here:
http://jsfmp.com/php_problem.html
Any more thoughts, anyone?
TIA
-Joel
On Jul 14, 2005, at 8:09 AM, DC wrote:
> if i understand right, the portal returns multiple data points into
> the data array and you don't think it should. the problem is that FMP
> can't read your mind and defaults to sending everything in the portal.
>
> confusing the issue is multiple find requests in a portal.
>
> my advice, do your find request directly on the join file.
>
> dan
>
> Joel Shapiro had written:
>> Hi all
>> I'm getting better with this, but I'm stuck right now on getting a
>> "portal" within a "portal". This is a school report card project, and
>> I'd like to have a table that shows all of a student's marks
>> separated by subject. Subjects vary per grade, and each Mark record
>> contains the subject as well as the student_ID. I can display:
>> - All subjects per the student's grade, and
>> - All marks per student,
>> but when I try to combine them, I can't get the php to 'stop' at each
>> subject -- instead, I only pull the marks for the last subject for
>> that student -- even though a print_r shows that the correct subject
>> is in each row.
>> Can anyone give a tip as to what I'm doing wrong?
>> Thanks,
>> -Joel
>> (I've posted my whole page below. Apologies if that's not how this is
>> done on this list.)
>> <?php
>> include_once('FX/FX.php');
>> include_once('FX/server_data.php');
>> include_once('FX/FMErrors.php');
>> $recid=$_GET['recid'];
>> // THE FOUND STUDENT
>> $findstudent=new FX($serverIP,$webCompanionPort);
>> $findstudent->SetDBData('school.fp7','Student');
>> $findstudent->SetDBPassword('','Admin');
>> $findstudent->AddDBParam('-recid',$recid);
>> $studentResult=$findstudent->FMFind();
>> foreach($studentResult['data'] as $key=>$studentData)
>> // ALL SUBJECTS PER STUDENT'S GRADE
>> $findsubject=new FX($serverIP,$webCompanionPort);
>> $findsubject->SetDBData('school.fp7','Subject');
>> $findsubject->SetDBPassword('','Admin');
>> $findsubject->AddDBParam('Grade',$studentData['Grade'][0]);
>> $subjectResult=$findsubject->FMFind();
>> foreach($subjectResult['data'] as $key2=>$subjectData)
>> // ALL MARKS PER STUDENT
>> $findmark=new FX($serverIP,$webCompanionPort);
>> $findmark->SetDBData('school.fp7','Mark');
>> $findmark->SetDBPassword('','Admin');
>> $findmark->AddDBParam('Student_ID',$studentData['Student_ID'][0]);
>> $markResult=$findmark->FMFind();
>> // ** PROBLEM: SHOULD BE MARKS PER SUBJECT PER STUDENT **
>> $search2=new FX($serverIP,$webCompanionPort);
>> $search2->SetDBData('school.fp7','Mark');
>> $search2->SetDBPassword('','Admin');
>> $search2->AddDBParam('Student_ID',$studentData['Student_ID'][0]);
>> $search2->AddDBParam('Subject',$subjectData['Subject'][0]);
>> $search2Result=$search2->FMFind();
>> ?>
>> <html>
>> <head>
>> <title>School</title>
>> </head>
>> <body>
>> <B><?php echo $studentData['Name'][0]; ?></B> Grade: <?php echo
>> $studentData['Grade'][0]; ?><BR>
>> ** ALL SUBJECTS PER STUDENT'S GRADE **
>> <table border="1" cellpadding="2" cellspacing="0"
>> bordercolor="#999999">
>> <tr>
>> <td>Subjects for Grade <?php echo $studentData['Grade'][0]; ?></td>
>> </tr>
>> <?php foreach($subjectResult['data'] as $key=>$subjectData) { ?>
>> <tr>
>> <td><?php echo $subjectData['Subject'][0]; ?></td>
>> </tr>
>> <?php } ?>
>> </table><BR>
>> ** ALL MARKS PER STUDENT **
>> <table border="1" cellpadding="2" cellspacing="0"
>> bordercolor="#999999">
>> <tr>
>> <td>Mark_ID</td>
>> <td>Mark</td>
>> <td>Subject</td>
>> <td>Student_ID</td>
>> </tr>
>> <?php foreach($markResult['data'] as $key=>$markData) { ?>
>> <tr>
>> <td><?php echo $markData['Mark_ID'][0]; ?></td>
>> <td><?php echo $markData['Mark'][0]; ?></td>
>> <td><?php echo $markData['Subject'][0]; ?></td>
>> <td><?php echo $markData['Student_ID'][0]; ?></td>
>> </tr>
>> <?php } ?>
>> </table><BR>
>> ** PROBLEM: ALL MARKS PER PER SUBJECT PER STUDENT **
>> <table border="1" cellpadding="2" cellspacing="0"
>> bordercolor="#999999">
>> <tr>
>> <td>Subjects for Grade <?php echo $studentData['Grade'][0]; ?></td>
>> </tr>
>> <?php foreach($subjectResult['data'] as $key=>$subjectData) { ?>
>> <tr>
>> <td><?php echo $subjectData['Subject'][0]; ?></td>
>> </tr>
>> <!-- **** PROBLEM: Only pulls last Subject in array, not one ForEach
>> **** -->
>> <?php foreach($search2Result['data'] as $key=>$search2Data) { ?>
>> <tr>
>> <td>
>> <?php print_r ($subjectData['Subject'][0]); ?><BR>
>> <?php echo $search2Data['Mark_ID'][0]; ?>
>> </td>
>> <td><?php echo $search2Data['Mark'][0]; ?></td>
>> <td><?php echo $search2Data['Subject'][0]; ?></td>
>> <td><?php echo $search2Data['Student_ID'][0]; ?></td>
>> </tr>
>> <?php } ?>
>> <!-- **** END PROBLEM **** -->
>> <?php } ?>
>> </table>
>> </body>
>> </html>
>> ----------------------------------------------------------------------
>> --
>> _______________________________________________
>> FX.php_List mailing list
>> FX.php_List at mail.iviking.org
>> http://www.iviking.org/mailman/listinfo/fx.php_list
> _______________________________________________
> FX.php_List mailing list
> FX.php_List at mail.iviking.org
> http://www.iviking.org/mailman/listinfo/fx.php_list
>
More information about the FX.php_List
mailing list