-1

ユーザーがログインしたときに、彼が行ったコースと結果を表示したいと思います。

現時点で私はこれを持っています:

<?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.
4

3 に答える 3

1

where句を追加し、

$query = "SELECT applied_cours, stud_res FROM students Where username='$_SESSION[user]'"; 
于 2012-02-17T14:46:40.343 に答える
0

ユーザーがログインしている場合は、その ID を に保存します$_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'].'"';
于 2012-02-17T14:47:25.643 に答える
0

入力を信頼できないため、パラメーター化された 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

于 2012-02-17T15:20:53.460 に答える