2016-04-02 15 views
-1

私は大学でWebアプリケーションを作成し、データアクセスに問題があります。PHP:ユーザー管理、データアクセス

ログインできるユーザーアカウントは3つあり、後でそれぞれ独自の講義を作成できます。

問題: 各教師は、作成した講義のみを表示し、他の2人が作成した講義は表示しないでください。現時点ではすべての講師がすべての講義を見ています。

ここに投稿するコードはわかりませんが、何か助けてもらえて非常に感謝しています。

ありがとうございます!

編集:ありがとうございます。私はそれを最後の数時間試しましたが、私はもう何をするのか分かりませんでした。

これは私がデータベースに講義を保存するコードです。 $ _SESSIONに問題があるようです。私のログインコードです

public function save(Vorlesung $vorlesung) 
    { 

     try { 
      $stmt = $this->pdo->prepare(' 
       INSERT INTO vorlesung 
       (name, login_dozent) 
       VALUES 
       (:name, '$_SESSION[dozent]') 
      '); 
      $stmt->bindParam(':name', $vorlesung->name); 
      $stmt->execute(); 
     } catch (PDOException $e) { 
      echo("Fehler! Bitten wenden Sie sich an den Administrator...<br>" . $e->getMessage() . "<br>"); 
      die(); 
     } 
     return $vorlesung; 
    } 

<?php 
require_once("Mapper/DozentManager.php"); 
require_once("Mapper/Dozent.php"); 

$login = htmlspecialchars($_POST["login"], ENT_QUOTES, "UTF-8"); 
$password = htmlspecialchars($_POST["password"], ENT_QUOTES, "UTF-8"); 

if (!empty($login) && !empty($password)) { 
    $DozentManager = new DozentManager(); 
    $dozent = $DozentManager->findByLogin($login, $password); 
    if ($dozent==null) { 
     header('Location: login.php'); 
     die(); 
    } else { 
     session_start(); 
     $_SESSION ['dozent'] = $dozent; 
     $_SESSION ['login'] = "1"; 
     header('Location: index.php'); 
     die(); 
    } 
} else { 
    echo "Error: Bitte alle Felder ausfüllen!<br/>"; 
} 
+0

まずは:非常にstackoverflowへようこそ!これはあなたの宿題のようです。ここの人々はあなたのものをするのが好きではありません。 – sics

+0

ようこそ、SO:私たちのお手伝いをするために、何を試しましたか?現在の質問には非常に一般的な解決策しか提供できませんが、これはあなたにとって役に立たないかもしれません。 –

答えて

1

あなたの講義テーブルは次のようになります。

id | lecture_name | teacher_id 
------------------------------ 
1 | lecture 1 | 1 
2 | lecutre 2 | 2 

あなたのクエリは次のようになります。

select * from lecture where teacher_id = 1; // or another teacher id 
+0

あなたの答えをありがとう!私はまだ講義テーブルにteacher_idをどのようにして管理するのか分かりません。 –

2

それはありません非常に正確で、コード例はありません。あなたの教師を識別するためのデータ:ユニークなログインID。教師(それぞれに固有のログインIDまたはIDがあります) - 講義:教師を識別するためのデータが含まれている必要があります。

次に、セッション値として保存する必要がある、現在接続されている先生を使用して講義をフィルタリングすることができます。ログインスクリプトで

  • チェック教師がログイン+パスワードを使用して、データベース内にあり、そのユニークなログインまたはIDを取得する場合。そして、セッション値にそれを保存:

$ _SESSION [「先生」] = $ the_teacher_id

  • あなたは、講義の作成の他のデータと、データベースに教師IDを保存

    講義: INSERT INTO講義(teacher、other_lecture_data)VALUES( '$ _SESSION [teacher]'、$ other_lecture_data_value);あなたが利用可能なすべての講義を一覧表示する際に、現在接続している教師のユニークなログインまたはID使用してそれらをフィルタリング

  • :講義の先生= '$ _SESSION [先生]' から

SELECT *を;

+0

あなたの答えをありがとう。理論的には素晴らしいと思うが、私はまだ自分のコードにいくつかの問題がある。私は上記の私の答えを編集しました。本当にありがとう! –