Извлечение данных на основе зарегистрированной пользовательской информации из двух разных таблиц - PullRequest
0 голосов
/ 03 января 2019

У меня есть форма входа в систему, где пользователь вводит свое имя пользователя и пароль. Каждый пользователь имеет свой уровень присвоения и раздел.

Моя главная проблема в том, что мой код не может определить, чей пользователь в данный момент вошел в систему, поэтому он не может получить его Gradesassign и Sectionassign, поэтому отображаются все данные из tbl_students.

Надеюсь, вы поможете мне с этим. Спасибо

Вот структура таблицы

tbl_user

| id | Name | gradeassign | sectionassign | Username | Password     
----------------------------------            
|  1 | XXXX |     2       |       3       |    xxx   |  xxx      
|  2 | YYYY |     1       |       2       |          |   
|  3 | ZZZZ |     1       |       6       |          |

tbl_students

| id | Name  | Grade      | Section   
----------------------------------            
|  1 | George|     2      |   3            
|  2 | YYYY  |     1      |   2              
|  3 | ZZZZ  |     1      |   1    

Если пользователь входит в XXX, результат и дата выборки должны быть:

| id | Name  | Grade | Section |     
----------------------------------            
|  1 | George |   2   |   3     |   

Вот мой код для сеанса входа пользователя в систему.

 <?php 
require_once('connection.php');
session_start();
if(isset($_POST['Login']))
{
   if(empty($_POST['Username']) || empty($_POST['Password']))
   {
        header("location:faculty.php?Empty=All fields are required");
   }
   else
   {
          $query="select * from facultyagain where Username='".$_POST['Username']."' 

и Pass = '". $ _ POST [' Password ']."' "; $ Результат = mysqli_query ($ против, $ запроса); * * тысячу двадцать-одна

        if(mysqli_fetch_assoc($result))
        {
            $_SESSION['User']=$_POST['Username'];
            header("location:faculty2.php");
        }
        else
        {
            header("location:faculty.php?Invalid= Unauthorized Access ");
        }
   }
}
else
{
    echo 'Not Working Now Guys';
}

?>

-------- Вот запрос, который я пытался получить желаемый результат.

 <?php

   $connect = mysqli_connect("localhost", "root", "", "db");  

  $sql = "SELECT * FROM tbl_students INNER JOIN tbl_user WHERE 
  tbl_user.gradeassign = 
  tbl_students.grade AND tbl_user.sectionassign = tbl_students.section";  
  $result = mysqli_query($connect, $sql);  

 ?>  

      <?php  
                      if(mysqli_num_rows($result) > 0)  
                      {  
                           while($row = mysqli_fetch_array($result))  
                           {  
                      ?>  
                      <tr>  
                           <td><?php echo $row["id"];?></td>  
                           <td><?php echo $row["name"]; ?></td>  
                           <td><?php echo $row["grade"]; ?></td>  
                           <td><?php echo $row["section"]; ?></td> 

                      </tr>  
                      <?php  
                           }  
                      }

                      ?>  

1 Ответ

0 голосов
/ 03 января 2019

Вы храните username после входа в систему.Пожалуйста, сохраните userId в сеансе instead of имя пользователя.Затем попробуйте этот запрос для получения результатов.

ПРЕДУПРЕЖДЕНИЕ SQL-запрос Уязвим для SQL-инъекций

<?php
  session_start();
  $connect = mysqli_connect("localhost", "root", "", "db");  
  $current_user_id = $_SESSION['User'];
  //I recommend you to validate session for empty or non authorized user.

  $sql = "SELECT * FROM tbl_students WHERE tbl_students.id = '$current_user_id' INNER JOIN tbl_user ON tbl_user.id = tbl_students.id";  
  $result = mysqli_query($connect, $sql);  

 ?>  

      <?php  
                      if(mysqli_num_rows($result) > 0)  
                      {  
                           while($row = mysqli_fetch_array($result))  
                           {  
                      ?>  
                      <tr>  
                           <td><?php echo $row["id"];?></td>  
                           <td><?php echo $row["name"]; ?></td>  
                           <td><?php echo $row["grade"]; ?></td>  
                           <td><?php echo $row["section"]; ?></td> 

                      </tr>  
                      <?php  
                           }  
                      }

                      ?>  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...