1

「ガイド」に「アクティビティ」を追加するスクリプトを作成しました。アクティビティを追加すると、その特定のアクティビティを追加するためのボタンが消える必要があります。

ウェル、私はこのスクリプトを作成しました:

<?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ない場合、存在しないエラーが発生します。これは、ガイドにアクティビティがあるときに変数が作成されるためです。

4

1 に答える 1

0

アクティビティ$activityIdID ごとに 1 つのエントリを持つ連想配列を作成します。次に、 を使用issetして値が存在するかどうかを判断し、存在する場合は 0/1 に設定して、そのアクティビティ ボタンを表示するかどうかを決定できます。

配列の詳細については、こちらをご覧ください。

于 2013-03-21T13:42:14.213 に答える