「ガイド」に「アクティビティ」を追加するスクリプトを作成しました。アクティビティを追加すると、その特定のアクティビティを追加するためのボタンが消える必要があります。
ウェル、私はこのスクリプトを作成しました:
<?php
//userid
$sql = "SELECT UserID FROM user WHERE Username = '".$_SESSION['Username']."' ";
$stm = $db->prepare($sql);
$result = $stm->execute(array());
while($row = $stm->fetch(PDO::FETCH_ASSOC)) {
$userid = $row['UserID'];
}
//activityid
$sql = "SELECT activity.*"."FROM user_activity, activity "."WHERE user_activity.ActivityID = activity.ActivityID AND user_activity.UserID = '".$userid."' " ;
$stm = $db->prepare($sql);
$result = $stm->execute(array());
while($row = $stm->fetch(PDO::FETCH_ASSOC)) {
$activityid = $row['ActivityID'];
}
//Shows activities in database staan.
$sql = "SELECT * FROM activity";
$stm = $db->prepare($sql);
$result = $stm->execute(array());
while($row = $stm->fetch(PDO::FETCH_ASSOC))
{
echo '<div id="activity'.$row['ActivityID'].'">';
echo '<img src="data:image/jpeg;base64,' . base64_encode( $row['ActivityIMG'] ) . '" >', '<br>';
$instantguide = $row['ActivityID'];
if($activityid == $instantguide) {
echo 'this activity is not in your guide.';
} else {
echo '<input type="button" class="addActivity" onclick="MakeRequest(' . $instantguide . ')" value="Activiteit toevoegen" data-activity="' . $row['ActivityID'] . '">';
}
echo '</div>';
}
?>
このスクリプトには2つの問題があります。
1:$activityid
値は1つだけなので、ガイドにアクティビティを追加すると、そのアクティビティのボタンが消えますが、ガイドに別のアクティビティを追加すると、そのアクティビティのボタンは消えますが、最初のアクティビティのボタンが再び表示されます。それは価値が$activityid
変わるからです。
2:ボタンを表示するかどうかを指定するif/elseステートメントを作成しました。そのステートメントであなたは見つけるでしょう$activityid
。しかし、ガイドにアクティビティが$activityid
ない場合、存在しないエラーが発生します。これは、ガイドにアクティビティがあるときに変数が作成されるためです。