从登录课程的用户处获取信息

时间:2016-12-02 09:02:29

标签: php mysql

我想获得Deelnemers下的用户名单:谁注册了该课程。我不知道怎么做这个已经尝试了一段时间了。 数据库看起来像下面的图片。 database

<?php
session_start();
require_once('includes/mysql_config.php');
$id = isset($_SESSION['id']) ? $_SESSION['id'] : header('location: login.php');
$Cursist = mysqli_query($con, "SELECT id FROM users WHERE id =".$_SESSION['id']);

require_once('header.php');
$cursus = mysqli_fetch_array(mysqli_query($con, "SELECT id FROM cursus WHERE id =".$_GET['id']));
?>

<div class="container">
  <div class="row">
    <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
      <div class="post-preview">
          <h2 class="post-title">
            <?php echo $cursus['title'] . "<br />";?>
            <?php echo $cursus['beginDatum'] . "<br />";?>
            Deelnemers:
            <?php
            $sql = mysqli_fetch_array(mysqli_query($con, "SELECT * FROM users t WHERE EXISTS(SELECT * FROM aanmeldingen B WHERE t.id = b.user_id)"));
            $amount = mysqli_affected_rows($con);

            for ($i = 0; $i < $amount; $i++) {
              $user = mysqli_fetch_array($sql);

            echo $user['email']. "<br />";
          }?>
          </h2>
      </div>
    </div>
      </div>
    </div>

我怎么能让这个工作起来,因为我不知道该怎么做呢

2 个答案:

答案 0 :(得分:0)

你可以试试这个sql

SELECT cursus.id, aanmeldingen.cursus_id, aanmeldingen.users_id, users.*
FROM users INNER JOIN (cursus INNER JOIN aanmeldingen ON cursus.id = aanmeldingen.cursus_id) ON users.id = aanmeldingen.users_id
WHERE cursus.id = 'ID number of the cursus';
  1. Table cursus与aanmeldingen联系
  2. 表aanmeldingen与用户联系
  3. 通过WHERE cursus id =给定的id号,我可以得到属于给定cursus成员的用户的所有信息

答案 1 :(得分:0)

我建议将数据库重新组织为3个表 - 用户,cursus和cursusstudent。

用户的电子邮件对每个用户都是唯一的,因此他们可以使用密码登录。

的cursus: db_id,cursus_id,naam_cursus,beschrijving,begindatum,cursussoort,prijs

cursusstudent: db_id,cursus_id,电子邮件 (此处的电子邮件列不应该是唯一的,因为一个学生可以参加多个课程)

获取具有相关cursus的用户列表:
1.查询cursusstudent

$ sql_student_and_cursus_id = mysqli_query($ conn,“SELECT * FROM cursusstudent”);

//声明列表变量的名称
$ list =“”;

  1. 在while循环中保存cursus_id和电子邮件。在循环内部,查询当前cursus_id的cursus,并查询用户当前的电子邮件。 获取他们各自的naam_cursus和名称。将它们保存在列表变量中。
  2. if(mysqli_num_rows($ sql_student_and_cursus_id)&gt; 0){

    while($ row = mysqli_fetch_array($ sql_student_and_cursus_id)){

    $cursus_id = $row['cursus_id'];
    $email = $row['email'];
    

    //收集诅咒名称
    $ query_cursus = mysqli_query($ conn,“SELECT naam_cursus FROM cursus WHERE cursus_id ='$ cursus_id'”);

    if(mysqli_num_rows($ query_cursus)&gt; 0){

    while($ row_cursus_naam = mysqli_fetch_array($ query_cursus)){

    $naam_cursus = $row_cursus_naam['naam_cursus'];
    
            }
        }
    

    //收集用户名称
    $ query_users = mysqli_query($ conn,“SELECT name FROM users WHERE email ='$ email'”);

    if(mysqli_num_rows($ query_users)&gt; 0){

    while($ row_naam_user = mysqli_fetch_array($ query_users)){

    $naam_user = $row_naam_user['name'];
    
            }
        }
    

    //将它们保存在列表中 $ list。= $ naam_user。 ''。 $ naam_cursus;     }

    }

    1. 显示循环外的列表:
    2. 如果(isset($列表)){

      echo $ list;

      }