Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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,我对PHP/MySQL非常陌生,所以请耐心等待 我正在尝试获取表中的成员列表,以显示在页面上。现在它显示第一个成员大约10次,而不显示任何其他人的名字。我确实让它工作了,但我不知道发生了什么。我只想让它显示每个人的名字一次。这是我的密码: <?php $select = mysql_query("SELECT * FROM `member_staff` WHERE `username`='$_SESSION[USR_LOGIN]' AND `status`='Active'"); $row

我对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的东西,你想显示老师班上有多少学生

<?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>"; }
?>

哪个查询是重复的?1、2或3?如果您只是在学习PHP,请不要学习过时的
mysql\u查询
界面。这很糟糕,在未来的PHP版本中会被删除。一个现代的替代品。像这样的指南可以帮助解释最佳实践。始终绝对确保您的用户参数是正确的,否则您将面临严重的问题。请不要使用过时的HTML元素,如
,并使用表格设置页面格式,除非确实需要表格。例如。将
第一年第二学期
替换为
第一年第二学期
,我个人会重新开始,但您当前的问题可能是您从未更新
$student
变量。你也应该在最后一个循环中更新它。这不起作用。它仍然显示一个名称十几次。:/我会做出建议的改变,也会读一些书。我认为这将是一个简单的解决方案。问题也可能存在于
$select=mysql\u查询(“从'member\u staff'中选择*,其中'username`='$\u SESSION[USR\u LOGIN]'和'status`='Active'”)。它应该是
$select=mysql\u查询(“从'member\u staff'中选择*,其中'username`='”、'SESSION[USR\u LOGIN]”和'status`='Active')这工作非常好!我将把我的代码和你的代码进行比较,看看我做错了什么。非常感谢你的帮助!
<?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
?>