【发布时间】:2018-04-23 02:25:25
【问题描述】:
我正在构建一个 MYSQL 生成的 PHP 应用程序。我有一张叫做学生的桌子和一张叫做笔记的桌子。注释表将用于输入有关被建议学生的任何额外信息,以便顾问可以在下次向学生提供建议时返回并查看信息。我不知道该怎么做。
我希望顾问只看到他们正在建议的特定学生的笔记,而不是其他人。我正在使用内部连接和 SELECT 语句来连接这两个表。两个表格中的信息将以 HTML 形式发布到备注页面。如何插入数据以便正确查看?我在这里先向您的帮助表示感谢。
这是我的选择查询(不是整个页面)。此页面显示注释。
<?php
$query = "
SELECT
notes.Note_Title,
notes.Note_Desc,
notes.Note_Cont,
notes.Note_Date
from notes
INNER JOIN students
ON notes.id = students.id
Where students.id = 'id'";
try {
$stmt = $db->prepare($query);
$stmt->execute();
}
catch(PDOException $ex)
{
die("Opps that Query didn't work out: " . $ex->getMessage());
}
while($row = $stmt->fetch()){
echo'<div>';
echo'<tr>';
echo '<td><h5><a href="notes_view.php?id='.$row['id'].'">'.$row['Note_Title'].'</a></h5></td>';
echo '<td><p>Note created on '.date('JS M Y H:i:s', strtotime($row['Note_Date'])).'</p></td>';
echo '<p>'.$row['Note_Desc'].'</p>';
echo '<p><a href="notes_view.php?id='.$row['id'].'">Read Note</a></p>';
echo '<p><a href="delete.php?id='.$row['id'].'">Delete note</a></p>';
echo '<p><a href="edit_notes.php?id='.$row['id'].'">Edit</a></p>';
echo '<hr width="100%">';
echo'</div>';
}
$query = "INSERT INTO notes (
id,
Note_Title,
Note_Desc,
Note_Cont,
Note_Date
) VALUES (
:id,
:Note_Title,
:Note_Desc,
:Note_Cont,
:Note_Date
)
";
$query_go = array(
':id' => $id,
':Note_Title' => $Note_Title,
':Note_Desc' => $Note_Desc,
':Note_Cont' => $Note_Cont,
':Note_Date' => date('Y-m-d H:i:s')
);
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_go);
}
catch(PDOException $ex)
{
die("Opps that query didn't work out: " . $ex->getMessage());
}
header('location: index.php?action=added');
exit;
}
}
?>
<form action='' method='POST'>
<input type='hidden' name='id' id='id' value='<?php if(isset($error)){echo $_POST['id'];}?>'>
<p><label>Note Title:</label><br />
<input type='text' name='Note_Title' value='<?php if(isset($error)){echo $_POST['Note_Title'];}?>'></p></td>
<p><label>Note description:</label><br />
<textarea name="Note_Desc" cols="40" rows="11"><?php if(isset($error)){echo $_POST['Note_Desc'];}?></textarea></p></td>
<p><label>Note content:</label><br />
<textarea name="Note_Cont" cols="70" rows="11"><?php if(isset($error)){echo $_POST['Note_Cont'];}?></textarea></p></td>
<p><input type="submit" name="submit" value="submit" ></p>
</form>
【问题讨论】:
-
我们能看看您已经掌握的数据库结构、查询、PHP 和 HTML 吗?这将帮助我想象你想要什么和不想要什么。话虽如此,我可能会考虑两个单独的查询:一个用于获取用户的数据,另一个用于获取与该用户帐户关联的所有 cmets。