編集2をお読みください。
私は「inoffice.php」というページで作業しています。このページには、生徒が表示されるのを待っていて、現在表示されているページが次のように表示されます。
これで、上から同じテーブルを使用して2番目のテーブルを取得しましたが、左結合を追加して、学生(この場合はDawne)と一緒に作業しているカウンセラーが表示され、学生がカウンセラーに受け入れられた時刻も表示されます。 。
プロジェクトのその部分は非常に困難でしたが、それでも私は通り抜けることができました。今、私にとって難しい部分はこれです(これは私の質問でもあります):
1)カウンセラー(またはスタッフ)が[セッションの開始]ボタン(phpセッションではなく実際の会議)をクリックしない限り、Being Seenテーブル(待機中の2番目のテーブル)が空になるようにするにはどうすればよいですか?学生とカウンセラーの間)
2)カウンセラー(スタッフ)が「セッション開始」ボタンをクリックすると、最初のテーブル(待機中)がエントリーを失うようにするにはどうすればよいですか。
私のデータベーススキーマは次のようになります:
- ユーザー-スタッフの資格情報を保持します
- 待機中-ID(PK)、anum(学生ID番号)、最初、最後、理由、コメント、サインインタイムが含まれます
- カウンセラー-これは、ID(PKおよびFKが結合での使用を待機していないこと)、カウンセラー名、カウンセラーの開始時刻を保持します
- コメント-ID(待機中のPKおよびFK)、コメント(カウンセラーのコメントの場合はvarchar 50前後)
- 終了-ID(待機中のPKとFK)、およびカウンセラーが学生と一緒に終了したときのタイムスタンプ
うまくいけば、私が提供した情報で、これを達成するためにトリガーまたはトランザクションをどのように/使用する必要があるかについて誰かが詳しく説明することができます。または、それがPHPの「もの」である場合、より良い言葉がないためです。
ありがとう、レイジ
編集2:古い機能していないコードを削除し、新しいコードで投稿を更新し、古いスクリーンショットを削除しました!更新されたものを含みます!:
<php
require('core/init.php');
if(!isset($_SESSION['LoggedIn'])){
die("You must <a href='index.php'><bold>login</bold></a> before you can see that page!");
}
//Begin the select statements
try
{
$query = $dbh->prepare("SELECT * FROM waiting WHERE counselorname IS NULL ");
$query->bindParam(':null', $null);
$query->execute();
$result = $query->fetchall();
}
catch (PDOException $e) {
error_log($e->getMessage());
die($e->getMessage());
}
echo "Return to <a href='login_success.php'><bold>Home Page</bold></a>";
echo "<br />";
echo "Waiting";
echo
"<table border='2'>
<tr>
<th>ID</th>
<th>A Number</th>
<th>First Name</th>
<th>Last Name</th>
<th>Why</th>
<th>Comments</th>
<th>Signintime</th>
<th>Staff Member</th>
<th>Click if ready!</th>
</tr>"
;
foreach($result as $row)
{
echo "<tr>";
echo "<td>" . $row['id'] . "</td>";
echo "<td><a href=Student.php?student=" . $row['anum'] . ">" .$row['anum'] . " </a></td>";
echo "<td>" . $row['first'] . "</td>";
echo "<td>" . $row['last'] . "</td>";
echo "<td>" . $row['why'] . "</td>";
echo "<td>" . $row['comments'] . "</td>";
echo "<td>" . $row['signintime'] . "</td>";
echo "
<td> <form action='counselor.php?id=" . $row['id'] . "' method='post' target='_new'>
<select name='namedrop'>
<option value=''>Counselor Name</option>
<option value='Admin-John'>Admin - John</option>
<option value='Admin-Christine'>Admin - Christine</option>
<option value='Admin-Dawne'>Admin - Dawne</option>
<option value='Counselor-Cherie'>Counselor - Cherie</option>
<option value='Counselor-Tootie'>Counselor - Tootie</option>
<option value='Counselor-Debbie'>Counselor - Debbi</option>
<option value='FrontDesk-Delores'>Front Desk - Delores</option>
<option value='FrontDesk-Kiana'>Front Desk - Kiana</option>
</select>
</td>
<td> <input type='submit' name='submit' value='Start Session'></td>
</form> </td>";
}
echo "</tr>";
echo "</table>";
echo "<br />";
echo "<br />";
try
{
$query2 = $dbh->prepare("SELECT * FROM waiting WHERE counselorname is NOT NULL");
$query2->execute();
$result2 = $query2->fetchall();
}
catch (PDOException $e) {
error_log($e->getMessage());
die($e->getMessage());
}
echo "Return to <a href='login_success.php'><bold>Home Page</bold></a>";
echo "<br />";
echo "Being seen";
echo
"<table border='2'>
<tr>
<th>ID</th>
<th>A Number</th>
<th>First Name</th>
<th>Last Name</th>
<th>Why</th>
<th>Comments</th>
<th>Signintime</th>
<th>Staff Member</th>
<th>Counselor Start Time</th>
</tr>"
;
foreach($result2 as $row2)
{
echo "<tr>";
echo "<td>" . $row2['id'] . "</td>";
echo "<td><a href=Student.php?student=" . $row2['anum'] . ">" .$row2['anum'] . " </a></td>";
echo "<td>" . $row2['first'] . "</td>";
echo "<td>" . $row2['last'] . "</td>";
echo "<td>" . $row2['why'] . "</td>";
echo "<td>" . $row2['comments'] . "</td>";
echo "<td>" . $row2['signintime'] . "</td>";
echo "<td>" . $row2['counselorname'] . "</td>";
echo "<td>" . $row2['counselor_time'] . "</td>";
}
?>