Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将值放入动态指定的标题_Php_Mysql - Fatal编程技术网

Php 如何将值放入动态指定的标题

Php 如何将值放入动态指定的标题,php,mysql,Php,Mysql,我正在与这个escenario合作: Students Table IDNUMBER NAME LEVEL COURSE SECTION Exams Table IDNUMBER SUBJECT_ID SCORE Student_Subject Table SUBJECT_ID LEVEL COURSE SECTION 主语1主语2主语3。。。标题是根据Student_Subject表中的Student表级别、课程和部分动态生成的,然后我从Student_Subject表中收集主题I

我正在与这个escenario合作:

Students Table
IDNUMBER
NAME
LEVEL
COURSE
SECTION


Exams Table
IDNUMBER
SUBJECT_ID 
SCORE


Student_Subject Table
SUBJECT_ID
LEVEL
COURSE
SECTION
主语1主语2主语3。。。标题是根据Student_Subject表中的Student表级别、课程和部分动态生成的,然后我从Student_Subject表中收集主题ID,以获得考试表中的分数

期望输出

IDNUMBER NAME   SUBJECTID_1 SUBJECTID_2 SUBJECTID_3 ...
123456  JACK    6.5     8.5     9.0 
我能够得到标题、学生列表和他们的分数,但我把它们放在了错误的位置

IDNUMBER NAME   SUBJECTID_1 SUBJECTID_2 SUBJECTID_3 ...
123456  JACK    9.0     8.5     6.5 
这是我到目前为止所拥有的

 <?php
 include('../connect.php');

// Finds the Names

$sql="SELECT * FROM student WHERE course='$course' AND yearlevel='$year' AND section     ='$section' " ;

$result = mysql_query($sql);
echo $title.' SECCIÓN: '.'"'.$section.'"'; 
echo "<table border='1' cellpadding='1' id='resultTable'><tr><th>#</th><th>NIE</th>    <th>NOMBRE COMPLETO</th>";


// Finds subjects

$sql_subjects="SELECT subject FROM studentsubject WHERE course='$course' AND   level='$year' AND section ='$section'" ; 
$result_subjects = mysql_query($sql_subjects);
$s = '1';
while($subjects = mysql_fetch_array($result_subjects))
  {
  // Muestra los códigos de las materias.
  echo "<th style='text-align:center'>".$subjects['subject']."</th>";

  $s++;
  }


  echo "</tr>";
  $i='1';
  while($row = mysql_fetch_array($result))
  {
   //Diplays  student info
    echo "<tr>";
  echo "<td style='text-align:center'>".$i."</td>";
  echo "<td>".$row['idnumber'];
  $student = $row['idnumber'];
  echo "<td>".$row['lname'].','.$row['fname']."</td>";

  $sql_grades="SELECT subject,score FROM exam WHERE idnum='$student' AND term='1'" ; 
  $result_grades = mysql_query($sql_grades);
  $g = '1';
  while($grades = mysql_fetch_array($result_grades))
  {
  // Displays the grades
  echo "<td style='text-align:center'>".$grades['score']."</td>";

   $g++;
  }

  echo "</tr>";
  $i++;
  }
 echo "</table>";

有更好的方法吗?我正在学习,我不知道这是否会给服务器带来很大的负载


谢谢你的加入建议。我从中学到了很多,但这对我来说太过分了,我不知道如何在这种情况下实现它

由于当前代码的分数顺序相反,您可以尝试使用
orderbyscore DESC
-

$sql_grades="SELECT subject,score FROM exam WHERE idnum='$student' AND term='1' ORDER BY score DESC" ;

但是,您应该学习如何使用,因为您的问题是,在当前代码中,主题值和分数值之间没有关系。

您应该重新设计模式,以便不以列名存储数据。
$sql_grades="SELECT subject,score FROM exam WHERE idnum='$student' AND term='1' ORDER BY score DESC" ;