Jump to content

Problem getting the right calculation answer in php


u0867587
 Share

Recommended Posts

Hi,

 

I have a calculation issue in my php. Below is my code:

 

$output = "";
$studentId  = false;
$courseId  = false;
$moduleId  = false;
        
while ($row = mysql_fetch_array($result)){    

        $moduletotal += $row['Mark'];
        
        $modulemark = (int)($moduletotal);
          
//Above here is the calculation for add in the Marks of all the sessions

//Below is the code of the display of the query output


if($studentId != $row['StudentUsername'])  {        

	$studentId = $row['StudentUsername'];        
	$output .= "<p><strong>Student:</strong> {$row['StudentForename']} {$row['StudentSurname']} ({$row['StudentUsername']})";   

   }    
   
   	if($courseId != $row['CourseId']) {    

	$courseId = $row['CourseId'];        		
	$output .= "<br><strong>Course:</strong> {$row['CourseId']} - {$row['CourseName']} <br><strong>Year:</strong> {$row['Year']}</p>";    

	}    

if($moduleId != $row['ModuleId'])  {        

   $moduleId = $row['ModuleId'];        
   $output .= "<p><br><strong>Module:</strong> {$row['ModuleId']} - {$row['ModuleName']} $modulemark</p>";   

  }  
    
   $output .= "<p><strong>Session:</strong> {$row['SessionId']} {$row['Mark']}</p>";
			   
  }

 

 

Student: Mayur Patel (u0867587)

Course: INFO101 - Bsc Information Communication Technology 

Year: 3

 

 

Module: CHI2550 - Modern Database Applications 72 (72 is the answer to the calculation for the first module but this is incorrect at it should also add the 67 and thus become 139)

 

Session: AAB 72

 

Session: AAE 67

 

Module: CHI2513 - Systems Strategy 200 (200 is the answer to the calculation for this module but this is incorrect it should be only 61. But what it has done is that it has added the 72 and 67 from the first module and added it with the 61 in this module)

 

Session: AAD 61

 

 

 

SO WHAT MY QUESTION IS THAT HOW CAN I FIND THE TOTAL OF EACH MODULE MARK WHICH THE VARIABLE $modulemark = (int)($moduletotal); IS TRYING TO DO BY ADDING UP ALL THE SESSIONS MARKS WITHIN EACH MODULE.

 

I HAVE TRIED USING SUM(gr.Mark) in the query and using GROUP BY SessionId, ModuleId, StudentUsername, and CourseId but it ends up not being able to display any records. That is why I want to do the calculation using php rather than SQL.

 

BELOW IS THE QUERY IF YOU WANT TO SEE IT:

 

$query = "
          SELECT st.CourseId, c.CourseName, st.Year, st.StudentUsername, st.StudentForename, st.StudentSurname,
          s.ModuleId, m.ModuleName, m.Credits, s.SessionId, s.SessionWeight, gr.Mark, gr.Grade
          FROM Course c
          INNER JOIN Student st ON c.CourseId = st.CourseId
          JOIN Grade_Report gr ON st.StudentId = gr.StudentId
          JOIN Session s ON gr.SessionId = s.SessionId
          JOIN Module m ON s.ModuleId = m.ModuleId
          WHERE
          (st.StudentUsername = '".mysql_real_escape_string($studentid)."')
          ORDER BY c.CourseName, st.StudentUsername, m.ModuleName, s.SessionId
          ";

Link to comment
Share on other sites

This thread is more than a year old.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.