php - 单行重复而不是显示

标签 php mysql

我是 PHP/MySQL 的新手,所以请耐心等待。

我正在尝试获取表格中的成员列表以显示在页面上。现在它显示第一个成员大约 10 次并且不显示其他任何人的名字。我确实让它工作了,但我不知道发生了什么。我只想让它显示一次每个人的名字。这是我的代码:

<?php $select = mysql_query("SELECT * FROM `member_staff` WHERE `username`='$_SESSION[USR_LOGIN]' AND `status`='Active'");
$row = mysql_fetch_array($select);
$rows = mysql_num_rows($select);
$teaching = $row[teaching];
if ($rows==0){echo "Sorry, you don't appear to be a professor.";}
else { ?>

<?php }
    $select2 = mysql_query("SELECT * FROM `classes_enrolled` WHERE `course`='" . $teaching . "' ORDER BY `student_name`") or die(mysql_error());
    $count = mysql_num_rows($select2);
    $row2 = mysql_fetch_array($select2);
    $student=$row2[student_name];
    if($count==NULL) {
        echo "<table width=\"80%\">\n";
        echo "<tr><td><center>Nobody has registered for your class yet!</center></td></tr>\n";
        echo "</table>\n";
        echo "<br /><br />\n\n";
    }

    else {
        echo "<center><font size=\"3\"><b>YEAR 1, TERM 2</b></font></center>";
        echo "<table width=\"80%\" class=\"table-stripes\">\n";
        echo "<tr><td width=\"50%\"><b>STUDENT</b></td></tr>\n";
    $select3 = mysql_query("SELECT * FROM `members` WHERE `username`='" . $student . "'") or die(mysql_error());
    $row3 = mysql_fetch_array($select3);
        while($row2 = mysql_fetch_array($select2)) {
        $house=$row3[house];
        echo "<tr><td><strong class=\"$house\">$student</strong></td></tr>";
        }
    echo "</table>"; }
?>

最佳答案

我想念你的代码,因为它很乱,但是忽略 mysqli 和 mysql 的东西,你想显示老师类(class)中有多少学生。

<?php $select = mysql_query("SELECT * FROM `member_staff` WHERE `username`='$_SESSION[USR_LOGIN]' AND `status`='Active'");
$row = mysql_fetch_array($select);
$rows = mysql_num_rows($select);
$teaching = $row[teaching];  <--- This only get first row of the course, if you want multiple course under same username, you need to loop it.
if ($rows==0){echo "Sorry, you don't appear to be a professor.";}
else { ?>

<?php }
    $select2 = mysql_query("SELECT * FROM `classes_enrolled` WHERE `course`='" . $teaching . "' ORDER BY `student_name`") or die(mysql_error());
    $count = mysql_num_rows($select2);
    $row2 = mysql_fetch_array($select2);
    $student=$row2[student_name];  <----- This only get the first row of the student name, if you want multiple student under a course, you need to loop it.
    if($count==NULL) {
        echo "<table width=\"80%\">\n";
        echo "<tr><td><center>Nobody has registered for your class yet!</center></td></tr>\n";
        echo "</table>\n";
        echo "<br /><br />\n\n";
    }

    else {
        echo "<center><font size=\"3\"><b>YEAR 1, TERM 2</b></font></center>";
        echo "<table width=\"80%\" class=\"table-stripes\">\n";
        echo "<tr><td width=\"50%\"><b>STUDENT</b></td></tr>\n";
    $select3 = mysql_query("SELECT * FROM `members` WHERE `username`='" . $student . "'") or die(mysql_error());
    $row3 = mysql_fetch_array($select3);
        while($row2 = mysql_fetch_array($select2)) {
        $house=$row3[house];  <----This only show the first row of $house under same student, so you need to loop it too.
        echo "<tr><td><strong class=\"$house\">$student</strong></td></tr>";
        }
    echo "</table>"; }
?>

所以你真正想做的是

<?php 
$select = mysql_query("SELECT * FROM `member_staff` WHERE `username`='$_SESSION[USR_LOGIN]' AND `status`='Active'");
$rows = mysql_num_rows($select);
if ($rows==0){echo "Sorry, you don't appear to be a professor.";}
else { ?>

<?php }
    while( $row = mysqli_fetch_array( $select ) ) {
      $teaching = $row[teaching];
      $select2 = mysql_query("SELECT * FROM `classes_enrolled` WHERE `course`='" . $teaching . "' ORDER BY `student_name`") or die(mysql_error());
      $count = mysql_num_rows($select2);
      if($count==NULL) {
        echo "<table width=\"80%\">\n";
        echo "<tr><td><center>Nobody has registered for your class yet!</center></td></tr>\n";
        echo "</table>\n";
        echo "<br /><br />\n\n";
      } else {

        while( $row2 = mysql_fetch_array($select2) ) {
           $student=$row2[student_name]; 
           echo "<center><font size=\"3\"><b>YEAR 1, TERM 2</b></font></center>";
           echo "<table width=\"80%\" class=\"table-stripes\">\n";
           echo "<tr><td width=\"50%\"><b>STUDENT</b></td></tr>\n";
           $select3 = mysql_query("SELECT * FROM `members` WHERE `username`='" . $student . "'") or die(mysql_error());
           while($row3 = mysql_fetch_array($select3)) {
              $house=$row3[house];
              echo "<tr><td><strong class=\"$house\">$student</strong></td></tr>";
           }
           echo "</table>"; 
        }
    }  // END ELSE
 }
} // END ELSE
?>

关于php - 单行重复而不是显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26244717/

相关文章:

java - Android - 通过 POST 方法轻松发送 HTTP 参数

php - MySQL JOIN 查询在不同数据库上给出不同结果

mysql - 数据库/SQL : Is attribute/key name for table unique?

php - 重复 mysql 获取导致 php 资源使用率较高

mysql - 如何更改两个字符之间的值 SQL

mysql - 如何将此 SQL 查询转换为 Elasticsearch 查询?

mysql - sql string cat 作为聚合函数 : cat multiple records together

php - 如何将 (2) 个不同表中的 (2) 列相乘,并将结果输入到表 (1) 中创建的新列中

php - 需要 php 表单来命名哪些必填字段尚未填写

php - 使用 php 为单个页面选择独特的样式表