Выбор данных от пользователя, который вошел в систему - PullRequest
0 голосов
/ 17 февраля 2012

Когда пользователь вошел в систему, я хочу, чтобы он увидел курс, который он прошел, и его результаты.

На данный момент у меня есть это:

<?php
  session_start();
  if(isset($_SESSION['user'])) {

  $query = "SELECT applied_cours, stud_res FROM students";
  $result = mysql_query($query);

    while($student = mysql_fetch_array($result)) {
      echo "<p>" . $student['applied_cours'] . "</p>";
      echo "<p>" . $student['stud_res'] . "</p>";
    }
  }
?>

Проблема в том, что это покажет все курсы и результаты всех, а не только вошедшего в систему пользователя. Кто-нибудь знает, как это исправить?

Таблица, которую я использую, выглядит следующим образом:

username, password, stud_id, studgr_id, applied_cours, stud_res
user1, password1, 6567, 2012_1, timemanagement, satisfactory
user2, password2, 8459, 2012_2, timemanagement, satisfactory
etc.

Ответы [ 3 ]

1 голос
/ 17 февраля 2012

Добавить where предложение,

$query = "SELECT applied_cours, stud_res FROM students Where username='$_SESSION[user]'"; 
0 голосов
/ 17 февраля 2012

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

$stmt = $dbh->prepare("SELECT applied_cours, stud_res FROM students WHERE stud_id =  ? ");
$stmt->bindParam(1, $_SESSION['user']['id']);

$stmt->execute();

Читать здесь: http://php.net/manual/en/pdo.prepared-statements.php

0 голосов
/ 17 февраля 2012

Если пользователь вошел в систему, сохраните его идентификатор в $_SESSION.

$_SESSION['user']['id'] = [insert user ID here]; // the stud_id

Тогда:

$query = 'SELECT applied_cours, stud_res FROM students WHERE stud_id = "'.$_SESSION['user']['id'].'"';
...