Donnerstag, Juni 4, 2020

berechnen Sie Schüler insgesamt markiert und einfügen, die Summe in eine andere Tabelle mit der id der Schüler zusammen

Entwickle ich ein einfacher student information system, für die ich jetzt haben 300 Studenten und sechs Fächern, so dass, wenn möchte ich hinzufügen, dass die Markierungen, die von jedem einzelnen Schüler, die ich verwenden html-Formular und php-script zum hinzufügen von Marken, die für jeden Schüler ich hinzufügen, Markierungen für sechs Fächer, die ein Thema in einer Zeit, so Frage ich mich, wenn es ist die Art und Weise, wo durch php zulassen kann, mich abzurufen, die von einer Schülerin und fügen Sie alle Noten für die sechs Themen auf einmal und dann ein anderes und so weiter. Auch ich möchte berechnen Sie die Gesamt-Noten für jeden Studenten und speichern diese Summe in eine andere Tabelle mit der entsprechenden Schüler-id, so dass ich kann wissen, wer ist der erste student, und wer ist der Letzte mit, dass die Gesamtzahl der Noten der einzelnen Schüler.

hier ist der Weg, ich mache jetzt

<?php error_reporting(E_ALL ^ E_NOTICE); ?>
<html>
<body>
<div>
<div>
<form action="connmarks.php" method="post">
    <table>
    <tr><td colspan="6">&nbsp;</td></tr>
    <tr><td><p>Adding Student Results</p></td></tr>
    <tr>
    <td width="9%">Student Code<?php echo $mstudentcode;?></td>
    <td width="17%"><input name="student_code" type="text" size="30" value="<?php echo $studentcode;?>" /></td></tr>
    <tr>
    <td width="10%">Subject Code<?php echo $msubjectcode;?></td>
    <td width="18%"><input name="subject_code" type="text" size="30"  value="<?php echo $subject_code;?>"/></td></tr>
    <tr>
    <td width="12%">Marks<?php echo $mmark;?></td>
    <td width="34%"><input name="mark" type="text" size="30" value="<?php echo $mark;?>"/></td>

    </tr>
      <td>&nbsp;</td>
      <td>&nbsp;
      </td>
    </tr>
     <tr><td colspan="4">&nbsp;</td></tr>
      <tr><td colspan="6">&nbsp;</td></tr>
     <tr>
    <td>&nbsp;</td><td colspan="6"><input type="submit" name="save" value="Add Marks" /></td>
     </tr>
     <tr><td colspan="6"><?php echo $sms1.$sms.$sms2;?></td></tr>
    </table>
    </form>
    </div>
    <div id="footer">Copyright <?php echo date("Y", time()); ?></div>
</div>
</body>
</html>


<?php error_reporting(E_ALL ^ E_NOTICE); ?>
<?php
session_start();
if(isset($_POST['save']))
{
// validating student code
    if(empty($_POST['student_code']))
    {
        $mstudentcode='<font color="red"><b>**</b></font>';
    }
    else
    {
        $student_code=$_POST['student_code'];
    }
// validation for kiswahili subject
    if(empty($_POST['subject_code']))
    {
        $msubjectcode='<font color="red"><b>**</b></font>';
    }
    else
    {
        $subject_code=$_POST['subject_code'];
    }
//validating english subject
    if(empty($_POST['mark']))
    {
        $mmark='<font color="red"><b>**</b></font>';
    }
    else
    {
        $mark=$_POST['mark'];
    }
//checking if there is any error message, if no error proceed, if there is error, display the error
// Then exit the script and redirect at the same page
    if($mstudentcode||$msubjectcode||$mmark||$sms)
    {
        $sms1='<font color="red"><b>Error found,please check **</b></font><br/>';
        include 'addmarks.php';
        exit;
    }
//if there is no error include connection file
    if($student_code&&$subject_code&&$mark)
    {
//     include 'mysqli_connect.php';
      require_once ('../../mysqli_connect.php');
        $addmarks= "insert into result(student_code,subject_code,mark) values ('".$student_code."','".$subject_code."','".$mark."')";
        $k = mysqli_query($dbc, $addmarks);
        if ($k)
        {
       $sms1='<font color="green"><b>Student Marks Submitted Successfully</b></font><br/>';
            include 'addmarks.php';
                        exit;
        }
        else
        {
            $sms1='<font color="red"><b>Failed To Add Student Marks</b></font><br/>';
            include 'addmarks.php';
                        exit;
        }
    }
    }
?>
  • Ist dies eine Lern-übung oder ein reales Projekt? Wie viel Zeit haben Sie ungefähr? Wie sind Sie Schwierigkeiten haben, mit?
  • es ist ein Diplom-Projekt, auch ich bin nicht so gut in php also warum ich lieber mysqli-Funktionen, die Teil der ich echt Hilfe brauche ist, wie ich hinzufügen kann, der alle sechs Themen auf einmal für jeden Schüler, plz help
  • Obwohl es nützlich zu sehen, dass Sie versucht haben, etwas, ich schlage vor, Sie entfernen Sie alle von diesem code (das scheint irrelevant zu deinem eigentlichen problem) und ersetzen Sie es mit der richtigen DDLs (und/oder eine sqlfiddle) UND eine entsprechende gewünschte Ergebnis
InformationsquelleAutor punji | 2015-05-07

3 Kommentare

  1. 3
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    <body>
    
        <form method="post">
            <!-- Displays all users in database in a select option -->
            <select name="students">
                <option>Student 1</option>
                <option>Student 2</option>
    
                <?php
                    //This code below is what you will need to use for yours to pull values out of the database(changing the values to suit yours obviously).
    
                    //$query = "SELECT * FROM students ORDER BY student_name ASC";
                    //$result = mysqli_query($conn,"$query");
    
                    //while($row = mysqli_fetch_assoc($result)){
                    //    echo "<option>" . $row['student_name'] . "<br></option>";
                    //}
                ?>
    
            </select><br>
    
            <!-- All the different input fields for maths, english and science -->
    
            <input type="text" name="eng_grade" value="" placeholder="Enter English Grade"><br>
            <input type="text" name="math_grade" value="" placeholder="Enter Maths Grade"><br>
            <input type="text" name="science_grade" value="" placeholder="Enter Science Grade"><br>
            <input type="submit" name="submit" value="Submit">
        </form>
        <?php 
    
            //If submit is pressed
            if (isset($_POST['submit'])) {
    
                //this gets the value of the student name from the select box and stores it as $student
                $student = $_POST['students'];
    
                //These gets the values stored in the inputs above and store them in the 3 vairables
                $english = $_POST['eng_grade'];
                $maths = $_POST['math_grade'];
                $science = $_POST['science_grade'];
    
                //this is a mysql query that updates the data with whatever you put into the database(to add to existing tables you will have to dig abit deeper and create your
                //database with all the correct fields!
                $query = "UPDATE students SET maths_grade = '$maths', $english_grade = '$english', science_grade = '$science' WHERE student_name = '$student'";
                $update = mysqli_query($conn,  "$query"); //<-- this inserts the values into the database, changing the current #null value (null means nothing is in it)
            }
    
        ?>
    </body>
    </html>
    • ja, ich brauche eine weitere Erklärung bitte
    • Wieder bearbeitet, wenn mehr Hilfe benötigt wird einfach Fragen und krank machen, ein kurzes Beispiel
    • verstanden, Bruder, die select-box ist perfekt, also was ich brauche, ist nicht eine update-Abfrage, wählen Sie einen Schüler aus, die select-Feld und fügen Sie dann die sechs Themen, von dort aus nun das php-Skript unterzubringen oder fügen Sie alle sechs Themen auf einmal und speichern Sie in der Datenbank mit bestimmten student-id ist eine Sache, die ich don T wissen, wo zu beginnen
    • Ja das ist gut! die update-Abfrage ist erforderlich, da lassen Sie die Felder leer, und aktualisieren Sie Sie, indem die Werte, die du angibst. Ich werde schreiben Sie ein Skript mit Kommentaren etc, wenn Sie möchten?
    • danke, ich würde schätzen, dass
    • Offensichtlich haben Sie Ihre eigenen Werte für die MySQL-Abfrage drin, aber dieser ist entlang der Linien von, was Sie wollen, ich würde vorschlagen, mit diesem/ das erlernen der syntax, bis Sie bequem sind, und ich bin sicher, dann werden Sie besitzen das wissen GENAU das zu tun, was Sie tun müssen
    • danke vielmals

  2. 0

    Erstellen 2 Tabellen, eine für Schüler und andere für das Marken.

    In einer Tabelle, legen Sie einfach student name und id(einmalig), und in der anderen Tabelle Schüler alle 6 Thema markiert also 6 Spalten für 6 sub, 1 für die Studenten-id, und andere wie auto-increment-Spalte „id“.

    So verwenden, dass die Schüler-id können Sie abrufen, alle das Thema Noten eines bestimmten Schülers.

    • Enter 1 Schüler name, dann erhalten Sie, die Schüler-id verwendet wird, können Sie alle 6 Fächern Marken auf einmal.
    • das einzige, was ich habe keine Ahnung, wie schreiben Sie das php-script, das fügt alle sechs Themen auf einmal.
    • wenn das Schüler-id nicht vorhanden ist in der db dann legen Sie es als : Insert into marks (student_id,sub1,sub2,sub3,sub4,sub5,sub6) values ('1',60,70,90,50,75,80) Und wenn Schüler-id existiert Sie können update oder Benutzer lassen Sie die record
  3. 0

    Edit: Gerade bemerkt, diese Frage ist 3 Jahre alt w00t!?

    Erstellung von Tabellen wäre so etwas wie

    Schüler Tabelle:

    id   primarykey  integer
    name notnullable nvarchar(255)

    Thema Tabelle

    id   primarykey  integer
    name notnullable nvarchar(255)

    student_subject Tabelle

     id         primarykey integer
     student_id foreignkey notnullable unique integer
     subject_id foreignkey notnullable unique integer
     mark                  notnullable        double(2,2)

    E. g. Wählen Sie die Markierungen der ein Thema

    Select student.name, subject.name, subject_student.mark from subject_student
    inner join student on student.id = subject_student.student_id
    inner join subjecton subject.id = subject_student.subject_id
    where student_id = X; //X is the id of the student you want

    Jede Berechnung sollte auf der Basis der Abfrage, wollen Sie nicht speichern Sie die Ergebnisse in die Datenbank. Sie wollen Daten in der Datenbank und da es volatil Daten (kann jederzeit geändert werden), es ist einfacher und schneller zu berechnen, wenn erforderlich. Sum , GroupBy es gibt eine Tonne von grundlegenden sql-Schlüsselwörtern, die Ihnen helfen können. student_subject table ist die Tabelle, wo es verbindet sich, dass Viele Schüler in Vielen Fächern mit einer bestimmten Marke. Wenn Sie sparen wollen, dass ein Schüler markieren, setzen Sie einfach in dieser Tabelle die id ‚ s und der Marke Wert.

    Da es ein Schulprojekt ist, sollte dies ausreichen, für Sie zu arbeiten.
    In der Zukunft, werfen Sie einen Blick auf prepared statements

    http://php.net/manual/en/book.pdo.php

Kostenlose Online-Tests