Olumide Posted August 25, 2022 Author Share Posted August 25, 2022 1 hour ago, Olumide said: Thank you sir for the great analysis. As I have said earlier, a novice will always be a novice until I become sound like you. I planned to remove the course unit as it is not needed for my project cos this is just for an upper elementary which require no course unit nor even faculty or department. I want to display data for a specified class to list the registered subjects such that if I click on a subject say English, it will take me to another form where I will be able to enter scores for each students in that selected class for the allotted subject 'English'. Please I will post the initial code for the tertiary in which I was trying to worked to change to the upper elementary. Here is the real for Higher college which is name as studentlist.php This code work by displaying the list of students in a selected class and if I clicked on a student, it will take me to the registered course/subjects for that student so I can be able to enter scores for the students. But what am trying to do is that, let assume we have 10 teachers, and each teacher take different subjects, such teacher will only be able to enter his own subject score. That is why I was trying to output the subjects instead of the students name and from the subjects, If I click say English, it should list all the students taking English instead of listing all the subjects for a specific students. A teacher teaches a class which comprises of like ten or more students, such will have to enter the score for his subject like English for all the students eg Class Name: Year 11 Science [Subject: English] SN | Students Name | Score 1. | Johnson Rufus | 40 ----- the score will be computed by the teacher 2. | Olumide David | 30 ----- to be entered 3. | Kayode Jon | 40 ---- to be entered Something like above. But here is the code for the studentlist.php <?php include('../includes/dbconnection.php'); include('../includes/session.php'); error_reporting(0); ?> <!doctype html> <!--[if gt IE 8]><!--> <html class="no-js" lang=""> <!--<![endif]--> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <?php include 'includes/title.php';?> <meta name="description" content="Ela Admin - HTML5 Admin Template"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="apple-touch-icon" href="https://i.imgur.com/QRAUqs9.png"> <link rel="shortcut icon" href="../assets/img/student-grade.png" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/normalize.css@8.0.0/normalize.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.1.3/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lykmapipo/themify-icons@0.1.2/css/themify-icons.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/pixeden-stroke-7-icon@1.2.3/pe-icon-7-stroke/dist/pe-icon-7-stroke.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.2.0/css/flag-icon.min.css"> <link rel="stylesheet" href="../assets/css/cs-skin-elastic.css"> <link rel="stylesheet" href="../assets/css/lib/datatable/dataTables.bootstrap.min.css"> <link rel="stylesheet" href="../assets/css/style2.css"> <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,800' rel='stylesheet' type='text/css'> <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/html5shiv/3.7.3/html5shiv.min.js"></script> --> <script> function showValues(str) { if (str == "") { document.getElementById("txtHint").innerHTML = ""; return; } else { if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("txtHint").innerHTML = this.responseText; } }; xmlhttp.open("GET","ajaxCall2.php?fid="+str,true); xmlhttp.send(); } } </script> </head> <body> <!-- Left Panel --> <?php $page="result"; include 'includes/leftMenu.php';?> <!-- /#left-panel --> <!-- Left Panel --> <!-- Right Panel --> <div id="right-panel" class="right-panel"> <!-- Header--> <?php include 'includes/header.php';?> <!-- /header --> <!-- Header--> <div class="breadcrumbs"> <div class="breadcrumbs-inner"> <div class="row m-0"> <div class="col-sm-4"> <div class="page-header float-left"> <div class="page-title"> <h1>Dashboard</h1> </div> </div> </div> <div class="col-sm-8"> <div class="page-header float-right"> <div class="page-title"> <!-- Log on to codeastro.com for more projects! --> <ol class="breadcrumb text-right"> <li><a href="#">Dashboard</a></li> <li><a href="#">Compute Result</a></li> <li class="active">Compute Result</li> </ol> </div> </div> </div> </div> </div> </div> <div class="content"> <div class="animated fadeIn"> <div class="row"> <div class="col-lg-12"> <div class="card"> <div class="card-header"> <!-- Log on to codeastro.com for more projects! --> <strong class="card-title"><h3 align="center">Select Student to Compute Result (GPA)</h3></strong> </div> <div class="card-body"> <!-- Credit Card --> <div id="pay-invoice"> <div class="card-body"> <div class="<?php echo $alertStyle;?>" role="alert"><?php echo $statusMsg;?></div> <form method="Post" action=""> <div class="row"> <div class="col-6"> <div class="form-group"> <label for="x_card_code" class="control-label mb-1">Level</label> <?php $query=mysqli_query($con,"select * from tbllevel"); $count = mysqli_num_rows($query); if($count > 0){ echo ' <select required name="levelId" class="custom-select form-control">'; echo'<option value="">--Select Level--</option>'; while ($row = mysqli_fetch_array($query)) { echo'<option value="'.$row['Id'].'" >'.$row['levelName'].'</option>'; } echo '</select>'; } ?> </div> </div> <div class="col-6"> <div class="form-group"> <label for="x_card_code" class="control-label mb-1">Session</label> <?php $query=mysqli_query($con,"select * from tblsession where isActive = 1"); $count = mysqli_num_rows($query); if($count > 0){ echo ' <select required name="sessionId" class="custom-select form-control">'; echo'<option value="">--Select Session--</option>'; while ($row = mysqli_fetch_array($query)) { echo'<option value="'.$row['Id'].'" >'.$row['sessionName'].'</option>'; } echo '</select>'; } ?> </div> </div> </div> <div class="row"> <div class="col-6"> <div class="form-group"> <label for="x_card_code" class="control-label mb-1">Faculty</label> <?php $query=mysqli_query($con,"select * from tblfaculty ORDER BY facultyName ASC"); $count = mysqli_num_rows($query); if($count > 0){ echo ' <select required name="facultyId" onchange="showValues(this.value)" class="custom-select form-control">'; echo'<option value="">--Select Faculty--</option>'; while ($row = mysqli_fetch_array($query)) { echo'<option value="'.$row['Id'].'" >'.$row['facultyName'].'</option>'; } echo '</select>'; } ?> </div> </div> <div class="col-6"> <div class="form-group"> <?php echo"<div id='txtHint'></div>"; ?> </div> </div> </div> <div> <button type="submit" name="submit" class="btn btn-success">View Student</button> </div> </form> </div> </div> </div> </div> <!-- .card --> </div><!--/.col--> <br><br> <div class="col-md-12"> <div class="card"> <div class="card-header"> <strong class="card-title"><h3 align="center">All Student</h3></strong> </div> <div class="card-body"> <table id="bootstrap-data-table" class="table table-hover table-striped table-bordered"> <thead> <tr> <th>#</th> <th>FullName</th> <th>MatricNo</th> <th>Level</th> <th>Faculty</th> <th>Department</th> <th>Session</th> <th>Date Added</th> <th>First Semester</th> <th>Second Semester</th> </tr> </thead> <tbody> <?php if(isset($_POST['submit'])) { $levelId=$_POST['levelId']; $sessionId=$_POST['sessionId']; $departmentId=$_POST['departmentId']; $facultyId=$_POST['facultyId']; $ret=mysqli_query($con,"SELECT tblstudent.Id, tblstudent.firstName, tblstudent.lastName, tblstudent.otherName,tblstudent.matricNo, tblstudent.dateCreated, tbllevel.levelName,tblfaculty.facultyName,tbldepartment.departmentName,tblsession.sessionName, tblstudent.levelId,tblstudent.sessionId,tblstudent.facultyId,tblstudent.departmentId from tblstudent INNER JOIN tbllevel ON tbllevel.Id = tblstudent.levelId INNER JOIN tblsession ON tblsession.Id = tblstudent.sessionId INNER JOIN tblfaculty ON tblfaculty.Id = tblstudent.facultyId INNER JOIN tbldepartment ON tbldepartment.Id = tblstudent.departmentId where tblstudent.levelId ='$levelId' and tblstudent.sessionId ='$sessionId' and tblstudent.departmentId ='$departmentId' and tblstudent.facultyId ='$facultyId'"); $cnt=1; while ($row=mysqli_fetch_array($ret)) { ?> <tr> <td><?php echo $cnt;?></td> <td><?php echo $row['firstName'].' '.$row['lastName'].' '.$row['otherName'];?></td> <td><?php echo $row['matricNo'];?></td> <td><?php echo $row['levelName'];?></td> <td><?php echo $row['facultyName'];?></td> <td><?php echo $row['departmentName'];?></td> <td><?php echo $row['sessionName'];?></td> <td><?php echo $row['dateCreated'];?></td> <td><a href="courseList.php?semesterId=1&matricNo=<?php echo $row['matricNo'];?>&levelId=<?php echo $row['levelId'];?>&facultyId=<?php echo $row['facultyId'];?>&departmentId=<?php echo $row['departmentId'];?>&sessionId=<?php echo $row['sessionId'];?>" title="Edit Details"><i class="fa fa-eye fa-1x"></i> View Course</a></td> <td><a href="courseList.php?semesterId=2&matricNo=<?php echo $row['matricNo'];?>&levelId=<?php echo $row['levelId'];?>&facultyId=<?php echo $row['facultyId'];?>&departmentId=<?php echo $row['departmentId'];?>&sessionId=<?php echo $row['sessionId'];?>" title="Edit Details"><i class="fa fa-eye fa-1x"></i> View Course</a></td> </tr> <?php $cnt=$cnt+1; } }?> </tbody> </table> </div> </div> </div> <!-- end of datatable --> </div> </div><!-- .animated --> </div><!-- .content --> <div class="clearfix"></div> <?php include 'includes/footer.php';?> </div><!-- /#right-panel --> <!-- Right Panel --> <!-- Scripts --> <script src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.14.4/dist/umd/popper.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.1.3/dist/js/bootstrap.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/jquery-match-height@0.7.2/dist/jquery.matchHeight.min.js"></script> <script src="../assets/js/main.js"></script> <script src="../assets/js/lib/data-table/datatables.min.js"></script> <script src="../assets/js/lib/data-table/dataTables.bootstrap.min.js"></script> <script src="../assets/js/lib/data-table/dataTables.buttons.min.js"></script> <script src="../assets/js/lib/data-table/buttons.bootstrap.min.js"></script> <script src="../assets/js/lib/data-table/jszip.min.js"></script> <script src="../assets/js/lib/data-table/vfs_fonts.js"></script> <script src="../assets/js/lib/data-table/buttons.html5.min.js"></script> <script src="../assets/js/lib/data-table/buttons.print.min.js"></script> <script src="../assets/js/lib/data-table/buttons.colVis.min.js"></script> <script src="../assets/js/init/datatables-init.js"></script> <script type="text/javascript"> $(document).ready(function() { $('#bootstrap-data-table-export').DataTable(); } ); // Menu Trigger $('#menuToggle').on('click', function(event) { var windowWidth = $(window).width(); if (windowWidth<1010) { $('body').removeClass('open'); if (windowWidth<760){ $('#left-panel').slideToggle(); } else { $('#left-panel').toggleClass('open-menu'); } } else { $('body').toggleClass('open'); $('#left-panel').removeClass('open-menu'); } }); </script> </body> </html> And here is the code for the courselist.php where the teacher will be able to enter his or her score <?php include('../includes/dbconnection.php'); include('../includes/session.php'); include('../includes/functions.php'); if(isset($_GET['matricNo']) && isset($_GET['levelId']) && isset($_GET['departmentId']) && isset($_GET['facultyId']) && isset($_GET['sessionId']) && isset($_GET['semesterId'])){ $matricNo = $_GET['matricNo']; $levelId = $_GET['levelId']; $departmentId = $_GET['departmentId']; $facultyId = $_GET['facultyId']; $sessionId = $_GET['sessionId']; $semesterId = $_GET['semesterId']; $stdQuery=mysqli_query($con,"select * from tblstudent where matricNo = '$matricNo'"); $rowStd = mysqli_fetch_array($stdQuery); $semesterQuery=mysqli_query($con,"select * from tblsemester where Id = '$semesterId'"); $rowSemester = mysqli_fetch_array($semesterQuery); $sessionQuery=mysqli_query($con,"select * from tblsession where Id = '$sessionId'"); $rowSession = mysqli_fetch_array($sessionQuery); $levelQuery=mysqli_query($con,"select * from tbllevel where Id = '$levelId'"); $rowLevel = mysqli_fetch_array($levelQuery); } else{ echo "<script type = \"text/javascript\"> window.location = (\"studentList.php\"); </script>"; } //------------------------------------ COMPUTE RESULT ----------------------------------------------- if (isset($_POST['compute'])){ $score=$_POST['score']; $N = count($score); $Subjects = $_POST['Subjects']; $courseCode = $_POST['courseCode']; $courseUnit = $_POST['courseUnit']; $dateAdded = date("Y-m-d"); $letterGrade = ""; $gradePoint = ""; $scoreGradePoint = 0.00; $totalCourseUnit = 0; $totalScoreGradePoint = 0; $gpa = ""; for($i = 0; $i < $N; $i++) { $score[$i]; //each scores entered $Subjects[$i]; // each Subjects $courseCode[$i]; // each course codes $courseUnit[$i]; //each course units $letterGrade = getScoreLetterGrade($score[$i]); //get the score letter grade (AA, A, AB, B etc) for each courses $gradePoint = getScoreGradePoint($score[$i]); //get the score grade points (4.00, 3.75, 3.50 etc) for each courses $scoreGradePoint = $courseUnit[$i] * $gradePoint; //multiply each course unit with their grade point ( 3 * 4 = 12) //Checks if result has been computed (MatricNo, level, semester and session) $que=mysqli_query($con,"select * from tblfinalresult where matricNo ='$matricNo' and levelId = '$levelId' and semesterId = '$semesterId' and sessionId = '$sessionId'"); $ret=mysqli_fetch_array($que); if($ret == 0){ //if no record exists, insert a record $query=mysqli_query($con,"insert into tblresult(matricNo,levelId,semesterId,sessionId,Subjects,courseCode,courseUnit,score,scoreGradePoint,scoreLetterGrade,totalScoreGradePoint,dateAdded) value('$matricNo','$levelId','$semesterId','$sessionId','$Subjects[$i]','$courseCode[$i]','$courseUnit[$i]','$score[$i]','$gradePoint','$letterGrade','$scoreGradePoint','$dateAdded')"); if ($query) { $totalCourseUnit += $courseUnit[$i]; //adds up all the course units $totalScoreGradePoint += $scoreGradePoint; //adds up all the score grade points //computes the gpa by dividing the total course unit by the total score grade point $gpa = round(($totalScoreGradePoint / $totalCourseUnit), 2); $classOfDiploma = getClassOfDiploma($gpa); //gets the class of diploma (Distinction, Upper, Lower etc) } else { $alertStyle ="alert alert-danger"; $statusMsg="An error Occurred!"; } }//end of check //echo 'Score = '.$score[$i].' Letter Grade = '.$letterGrade.' Grade point = '.$gradePoint.' totalGradePoint = '.$scoreGradePoint.'<br>'; }//end of loop //Checks if result has been computed (MatricNo, level, semester and session) $que=mysqli_query($con,"select * from tblfinalresult where matricNo ='$matricNo' and levelId = '$levelId' and semesterId = '$semesterId' and sessionId = '$sessionId'"); $ret=mysqli_fetch_array($que); if($ret > 0){ $alertStyle ="alert alert-danger"; $statusMsg="The result has been computed for this student for this semester, level and session!"; } else{ $querys = mysqli_query($con,"insert into tblfinalresult(matricNo,levelId,semesterId,sessionId,totalCourseUnit,totalScoreGradePoint,gpa,classOfDiploma,dateAdded) value('$matricNo','$levelId','$semesterId','$sessionId','$totalCourseUnit','$totalScoreGradePoint','$gpa','$classOfDiploma','$dateAdded')"); if ($querys) { $alertStyle ="alert alert-success"; $statusMsg="Result Computed Successfully!"; } else { $alertStyle ="alert alert-danger"; $statusMsg="An error Occurred!"; } } }//end of POST ?> <!doctype html> <!--[if gt IE 8]><!--> <html class="no-js" lang=""> <!--<![endif]--> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <?php include 'includes/title.php';?> <meta name="description" content="Ela Admin - HTML5 Admin Template"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="apple-touch-icon" href="https://i.imgur.com/QRAUqs9.png"> <link rel="shortcut icon" href="../assets/img/student-grade.png" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/normalize.css@8.0.0/normalize.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.1.3/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lykmapipo/themify-icons@0.1.2/css/themify-icons.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/pixeden-stroke-7-icon@1.2.3/pe-icon-7-stroke/dist/pe-icon-7-stroke.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.2.0/css/flag-icon.min.css"> <link rel="stylesheet" href="../assets/css/cs-skin-elastic.css"> <link rel="stylesheet" href="../assets/css/lib/datatable/dataTables.bootstrap.min.css"> <link rel="stylesheet" href="../assets/css/style2.css"> <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,800' rel='stylesheet' type='text/css'> <!-- <script type="text/javascript" src="https://cdn.jsdelivr.net/html5shiv/3.7.3/html5shiv.min.js"></script> --> <script> //Only allows Numbers function isNumber(evt) { evt = (evt) ? evt : window.event; var charCode = (evt.which) ? evt.which : evt.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57)) { return false; } return true; } //Check if the value entered is greater than 100 and not less than 0 function myFunction() { var x, text; // Get the value of the input field with id="numb" x = document.getElementById("score").value; // If x is Not a Number or less than one or greater than 10 if (isNaN(x) || x < 1 || x > 100) { // text = "Value cannot be greater than 100 or less than 0"; alert("Invalid"); } else{ text = ""; } document.getElementById("demo").innerHTML = text; } </script> </head> <body> <!-- Left Panel --> <?php include 'includes/leftMenu.php';?> <div id="right-panel" class="right-panel"> <!-- Header--> <?php include 'includes/header.php';?> <!-- Header--> <div class="content"> <div class="animated fadeIn"> <div class="row"> <div class="col-lg-12"> <div class="card"> </div> <!-- .card --> </div><!--/.col--> <div class="col-md-12"> <div class="card"> <div class="card-header"> <strong class="card-title"><h4 align="center">Compute <?php echo $rowStd['firstName'].' '.$rowStd['lastName']?>'s <?php echo $rowLevel['levelName'];?> [<?php echo $rowSemester['semesterName'];?>] - Semester Result</h></strong> </div> <form method="post"> <div class="card-body"> <p id="demo"></p> <div class="<?php if(isset($alertStyle)){echo $alertStyle;}?>" role="alert"><?php if(isset($statusMsg)){echo $statusMsg;}?></div> <table class="table table-hover table-striped table-bordered"> <thead> <tr> <th>#</th> <th>Course</th> <th>Code</th> <th>Unit</th> <th>Score</th> </tr> </thead> <tbody> <?php $ret=mysqli_query($con,"SELECT tblcourse.courseCode,tblcourse.courseTitle,tblcourse.dateAdded,tblcourse.Id, tblcourse.courseUnit,tbllevel.levelName,tblfaculty.facultyName,tbldepartment.departmentName,tblsemester.semesterName,tblsubject.Subjects from tblcourse INNER JOIN tbllevel ON tbllevel.Id = tblcourse.levelId INNER JOIN tblsubject ON tblsubject.id = tblcourse.courseTitle INNER JOIN tblsemester ON tblsemester.Id = tblcourse.semesterId INNER JOIN tblfaculty ON tblfaculty.Id = tblcourse.facultyId INNER JOIN tbldepartment ON tbldepartment.Id = tblcourse.departmentId where tblcourse.levelId ='$levelId' and tblcourse.semesterId ='$semesterId' and tblcourse.departmentId ='$departmentId' and tblcourse.facultyId ='$facultyId'"); $cnt=1; while ($row=mysqli_fetch_array($ret)) { ?> <tr> <td><?php echo $cnt;?></td> <td><?php echo $row['Subjects'];?></td> <td><?php echo $row['courseCode'];?></td> <td><?php echo $row['courseUnit'];?></td> <td><input name="score[]" id="score" type="text" class="form-control" maxlength="3" onkeypress="return isNumber(event)" ></td> <input id="" value="<?php echo $row['Subjects'];?>" name="Subjects[]" type="hidden" class="form-control" > <input id="" value="<?php echo $row['courseCode'];?>" name="courseCode[]" type="hidden" class="form-control" > <input id="" value="<?php echo $row['courseUnit'];?>" name="courseUnit[]" type="hidden" class="form-control" > <input id="" name="" value="<?php echo $row['Id'];?>" type="hidden" class="form-control" > </tr> <?php $cnt=$cnt+1; }?> </tbody> </table> <button type="submit" onclick="myFunction()" name="compute" class="btn btn-success">Compute Result</button> </form> </div> </div> </div> <!-- end of datatable --> </div> </div><!-- .animated --> </div><!-- .content --> <div class="clearfix"></div> <?php include 'includes/footer.php';?> </div><!-- /#right-panel --> <!-- Right Panel --> <!-- Scripts --> <script src="https://cdn.jsdelivr.net/npm/jquery@2.2.4/dist/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.14.4/dist/umd/popper.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.1.3/dist/js/bootstrap.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/jquery-match-height@0.7.2/dist/jquery.matchHeight.min.js"></script> <script src="../assets/js/main.js"></script> <script src="../assets/js/lib/data-table/datatables.min.js"></script> <script src="../assets/js/lib/data-table/dataTables.bootstrap.min.js"></script> <script src="../assets/js/lib/data-table/dataTables.buttons.min.js"></script> <script src="../assets/js/lib/data-table/buttons.bootstrap.min.js"></script> <script src="../assets/js/lib/data-table/jszip.min.js"></script> <script src="../assets/js/lib/data-table/vfs_fonts.js"></script> <script src="../assets/js/lib/data-table/buttons.html5.min.js"></script> <script src="../assets/js/lib/data-table/buttons.print.min.js"></script> <script src="../assets/js/lib/data-table/buttons.colVis.min.js"></script> <script src="../assets/js/init/datatables-init.js"></script> <script type="text/javascript"> $(document).ready(function() { $('#bootstrap-data-table-export').DataTable(); } ); // Menu Trigger $('#menuToggle').on('click', function(event) { var windowWidth = $(window).width(); if (windowWidth<1010) { $('body').removeClass('open'); if (windowWidth<760){ $('#left-panel').slideToggle(); } else { $('#left-panel').toggleClass('open-menu'); } } else { $('body').toggleClass('open'); $('#left-panel').removeClass('open-menu'); } }); </script> </body> </html> Quote Link to comment Share on other sites More sharing options...
Olumide Posted August 25, 2022 Author Share Posted August 25, 2022 40 minutes ago, Barand said: A model along these lines would give greater flexibility My courses don't expire. It should be permanent. It only changes for class, i.e. the course for Year 10 is different from Year 7 courses Quote Link to comment Share on other sites More sharing options...
Barand Posted August 25, 2022 Share Posted August 25, 2022 44 minutes ago, Olumide said: the course for Year 10 is different from Year 7 courses In that case When posting code, use the code button ( ) When your teacher finds the student/course to add their marks, where are you putting those marks? Quote Link to comment Share on other sites More sharing options...
Olumide Posted August 25, 2022 Author Share Posted August 25, 2022 8 minutes ago, Barand said: In that case When posting code, use the code button ( ) When your teacher finds the student/course to add their marks, where are you putting those marks? Okay sir, I will observe that when posting code next. The marks will stored in the database result -- Table structure for table `tblresult` -- CREATE TABLE `tblresult` ( `Id` int(10) NOT NULL, `matricNo` varchar(50) NOT NULL, `levelId` varchar(10) NOT NULL, `semesterId` varchar(10) NOT NULL, `sessionId` varchar(10) NOT NULL, `Subjects` varchar(250) NOT NULL, `courseCode` varchar(50) NOT NULL, `courseUnit` varchar(50) NOT NULL, `score` varchar(50) NOT NULL, `scoreGradePoint` varchar(50) NOT NULL, `scoreLetterGrade` varchar(10) NOT NULL, `totalScoreGradePoint` varchar(50) NOT NULL, `dateAdded` varchar(50) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dumping data for table `tblresult` -- INSERT INTO `tblresult` (`Id`, `matricNo`, `levelId`, `semesterId`, `sessionId`, `Subjects`, `courseCode`, `courseUnit`, `score`, `scoreGradePoint`, `scoreLetterGrade`, `totalScoreGradePoint`, `dateAdded`) VALUES (58, 'SGS129', '3', '1', '2', 'English Language', 'ENGA', '3', '5', '0', 'F', '0', '2022-08-21'), (57, 'SGS129', '3', '1', '2', 'Mathematics', 'MATA', '3', '55', '2.75', 'BC', '8.25', '2022-08-21'), (56, 'SGS129', '3', '1', '2', 'French', 'FRCA', '3', '5', '0', 'F', '0', '2022-08-21'); Quote Link to comment Share on other sites More sharing options...
Barand Posted August 25, 2022 Share Posted August 25, 2022 STOP making all the columns varchar. dates should be type DATE Numeric fields should be numeric types (int, float, decimal etc) Sorting and comparing will fail with wrong types EG mysql> create temporary table test (numcol int, charcol varchar(10)); Query OK, 0 rows affected (0.92 sec) mysql> insert into test (numcol, charcol) values (1, '1'), (5, '5'), (100, '100'); Query OK, 3 rows affected (0.05 sec) mysql> select * from test order by numcol; +--------+---------+ | numcol | charcol | +--------+---------+ | 1 | 1 | | 5 | 5 | | 100 | 100 | +--------+---------+ mysql> select * from test order by charcol; +--------+---------+ | numcol | charcol | +--------+---------+ | 1 | 1 | | 100 | 100 | | 5 | 5 | +--------+---------+ mysql> SELECT 100 > 5, '100' > '5'; +---------+-------------+ | 100 > 5 | '100' > '5' | +---------+-------------+ | 1 | 0 | 1 = true +---------+-------------+ 3 rows in set (0.00 sec) Quote Link to comment Share on other sites More sharing options...
Barand Posted August 25, 2022 Share Posted August 25, 2022 32 minutes ago, Olumide said: ENGINE=MyISAM DEFAULT CHARSET=latin1; No No No! Define your DBs default table type as InnoDB and your default charset as UTF8 and stick with those. Don't define tables/columns with different engines and charsets, you are just creating problems for yourself. Quote Link to comment Share on other sites More sharing options...
Olumide Posted August 25, 2022 Author Share Posted August 25, 2022 13 minutes ago, Barand said: STOP making all the columns varchar. dates should be type DATE Numeric fields should be numeric types (int, float, decimal etc) Sorting and comparing will fail with wrong types EG mysql> create temporary table test (numcol int, charcol varchar(10)); Query OK, 0 rows affected (0.92 sec) mysql> insert into test (numcol, charcol) values (1, '1'), (5, '5'), (100, '100'); Query OK, 3 rows affected (0.05 sec) mysql> select * from test order by numcol; +--------+---------+ | numcol | charcol | +--------+---------+ | 1 | 1 | | 5 | 5 | | 100 | 100 | +--------+---------+ mysql> select * from test order by charcol; +--------+---------+ | numcol | charcol | +--------+---------+ | 1 | 1 | | 100 | 100 | | 5 | 5 | +--------+---------+ mysql> SELECT 100 > 5, '100' > '5'; +---------+-------------+ | 100 > 5 | '100' > '5' | +---------+-------------+ | 1 | 0 | 1 = true +---------+-------------+ 3 rows in set (0.00 sec) Okay sir, I will change the data type. But hope this will solve the problem sir? Quote Link to comment Share on other sites More sharing options...
Olumide Posted August 25, 2022 Author Share Posted August 25, 2022 2 minutes ago, Barand said: No No No! Define your DBs default table type as InnoDB and your default charset as UTF8 and stick with those. Don't define tables/columns with different engines and charsets, you are just creating problems for yourself. I will do that right now sir. Quote Link to comment Share on other sites More sharing options...
Olumide Posted August 25, 2022 Author Share Posted August 25, 2022 22 minutes ago, Olumide said: I will do that right now sir. I have dropped all the tables and restructured with the appropriate data types as instructed. But am yet to re-query the database again. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.