我正在制作一个显示“活动”的应用程序。每个活动都有自己的按钮。单击该按钮时,会将该特定活动添加到“指南”中。这个想法是你只能添加一个特定的活动,所以当它被添加到指南时,该活动的按钮必须消失。我可以在我的javascript中使用简单的$(this).hide()
,但是当我刷新页面时,这显然不起作用。所以我想我应该检查de guide中是否存在活动。
我有3个表,1:activity
(带有ActivityID
),2:user
(带有UserID
)和3:{{1 (user_activity
和ActivityID
,一个可链表)。
因此,检查必须检查user_activity表中是否存在UserID
,以及user_activity表中属于ActivityID
的{{1}}是否与当前用户相同ID。
此时,我知道如何检查当前用户UserID:
UserID
但我不知道如何检查ActivityID
是否已经存在,以及我应该如何做到这一点
if else声明。
我使用此脚本显示活动(包括按钮)
//userid
$sql = "SELECT * FROM user WHERE Username = '".$_SESSION['Username']."' ";
$stm = $db->prepare($sql);
$result = $stm->execute(array());
while($row = $stm->fetch(PDO::FETCH_ASSOC)) {
$userid = $row['UserID'];
}
答案 0 :(得分:1)
您需要LEFT JOIN才能查看已有的活动
SELECT a.*, ua.ActivityID as added
FROM activities a LEFT JOIN user_activity ua
ON a.ActivityID=ua.ActivityID AND UserID=:userid
因此,您在结果集中会有一个额外的added
字段,如果已经选择了则填充了一个id,否则为空
答案 1 :(得分:-1)
// First you need to get all the activityIDs from the table where you want to search and put them into an array $sql2 = "SELECT * FROM user_activity"; $stm2 = $db->prepare($sql2); $result2 = $stm2->execute(array()); $user_activityID = array(); while($row2 = $stm->fetch(PDO::FETCH_ASSOC)) { // if in the table user_activity the column you are trying to compare has the same name as in activity -- $row2['ActivityID'] array_push($row2['ActivityID'], $user_activityID); } // Then you use in_array to compare while you go through the user_activity table $sql = "SELECT * FROM activity"; $stm = $db->prepare($sql); $result = $stm->execute(array()); while($row = $stm->fetch(PDO::FETCH_ASSOC)) { if (in_array($row['ActivityID'], $user_activityID)) { // yes the current $row['ActivityID'] from the activity table, exists in the user_activity table // you can choose whether or not to add this to your array array_push($row['ActivityID'], $activityID); } }
我确信还有其他更有效的方法来实现这一点,使用一些我不知道的pdo内容,但这就是我要做到的。
答案 2 :(得分:-2)
首先:你应该使用OOP ...所以从数据库获取数据的部分和你在屏幕上放置html的部分应该分开......
但要回答你的问题: 我应该这样做的方式(可能不是最好的,但它会起作用)是:
当按下按钮时,让它在你获得POST的页面上进行提交(所以在按钮周围放一个表格)(或者得到,不管怎样)你检查按下了哪个按钮,然后填写sessionvariabele ,当你输出你的html时,检查sessionvar以查看哪一个已被按下...
所以你的if看起来像
<?php
if (isset($_SESSION["button1))
{
?>
<input ... button submit whatever> (or disabled, if you want the button to be there but be disabled)
<?php
}
?>
希望这有帮助