【发布时间】:2016-02-26 20:44:27
【问题描述】:
我有一个名为Add to Favourites 的按钮。单击此按钮时,它会执行一个 PHP 查询,将 inserts 数据输入数据库。这是存储数据的表:
favourites 表:
id
favourited_who
favourited_by
一个用户只能被登录用户收藏一次。例如,如果 Alice 已登录,那么 Alice 只能收藏 Freddy 一次,如果 Freddy 已经收藏,则 add to favourites 按钮将被 remove from favourites 按钮替换。
这是我将数据发送到数据库的 PHP 查询:
if (isset($_POST['addfriend'])) {
$fav_request = $_POST['addfriend'];
$favourited_who = $user; // u variable
$favourited_by = $username; // logged in user
$q = mysqli_query ($connect, "SELECT * FROM favourites");
while ($r_query = mysqli_fetch_array($q)) {
$db_fav_who = $r_query['favourited_who'];
$db_fav_by = $r_query['favourited_by'];
if ($db_fav_by == $username){ // check to see which users favourites we are checking
// if the user already exists in the logged in users favourites, then display remove from favourites button.
if ($db_fav_who == $user){
echo "<div class='edit_profile'>
<input type='submit' class='btn btn-info' name='remfriend' value='Remove from Favourites'>
</div";
}
}
}// while loop closed
if ($user != $username) { // Check: See user isnt favouriting themself.
$favourite_user = mysqli_query($connect, "INSERT INTO favourites VALUES ('', '$favourited_who', '$favourited_by')");
$errMsg = "Favourited";
echo "done ";
}
}
if ($user == $username){
// dont display buttons
} else {
echo " <form method='post'>
<input type='submit' class='btn btn-info' name='sendmsg' value='Send Message'/>
<input type='submit' class='btn btn-info' name='addfriend' value='Add to Favourites'>
</form>";
}
使用此代码,数据按预期插入数据库,并出现remove from favourites 按钮,但它与add to favourites 按钮一起出现,何时应只显示其中一个,具体取决于是否用户是否喜欢。
底线,应该始终只显示两个按钮,send message 按钮和 Add to favourites 按钮,如果用户不喜欢,或者 send message 按钮和 remove from favourites 按钮,如果它们在收藏夹中(如果数据在登录用户收藏的数据库中)。
【问题讨论】:
-
您在
</div中缺少关闭>括号。