Php 获得;“活动ID”;从那具体的;活动“;如果我按下按钮

Php 获得;“活动ID”;从那具体的;活动“;如果我按下按钮,php,javascript,Php,Javascript,我正在制作一个从mysql数据库中删除记录的按钮 我制作了一个包含3个表的数据库,1:user,2:activity,3:user\u activity。 在user_活动中,您可以找到UserID(来自user)和ActivityID(来自activity) 我已经制作了一个脚本,可以将UserID和ActivityID添加到user\u活动表中。但现在我还需要一个按钮,删除“行” 所以我用onclick函数编写了这段javascript代码: $(".deleteActivity").cli

我正在制作一个从mysql数据库中删除记录的按钮

我制作了一个包含3个表的数据库,1:user,2:activity,3:user\u activity。 在user_活动中,您可以找到UserID(来自user)和ActivityID(来自activity)

我已经制作了一个脚本,可以将UserID和ActivityID添加到user\u活动表中。但现在我还需要一个按钮,删除“行”

所以我用onclick函数编写了这段javascript代码:

$(".deleteActivity").click( function() {

    var user_activityId = $(this).data('activity');

    $.ajax({
        type: "POST",
        url: "delete_activity.php",
        data: {
            activity: user_activityId
        },
        dataType: 'json',
        success: function (data) {          
        }
    });
    $(this).hide(); 
});
我制作了这个delete_activity.php文件:

<?php
  include "connection.php";

  $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'];
  echo $userID;
}

  $sql = "SELECT * FROM user_activity WHERE UserID = '".$userID."' ";
  $stm = $db->prepare($sql);
  $result = $stm->execute(array());
  while($row = $stm->fetch(PDO::FETCH_ASSOC)) {
  echo $row['ActivityID'];
}
?>

我希望一切都很清楚,有人可以帮助我

在您的查询中使用您发布的用户活动id:D我不知道您的
用户活动id
的列名,请在您的情况下编辑它

$userActivityId = filter_input(INPUT_POST, "activity");

$sql = "SELECT * FROM user_activity WHERE UserActivityId = :id";
$stm = $db->prepare($sql);
$stm->bindValue( ":id", $userActivityId, PDO::PARAM_INT);
if($stm->execute())
{
    $rows = $stm->fetchAll();
    foreach($rows as $row)
    {
         echo $row['ActivityId'];
         break;
    }
}

手动使用
bindValue
而不是concat查询字符串。但是,
var_dump
您的
$userId
,以确保它有数据。感谢您提供的信息,我是PDO新手,因此我非常感谢这些提示。但不幸的是,这并不能解决我的问题。有什么方法可以帮我吗?你能给我看看
var\u dump($userId)
的结果吗?稍微修改代码以显示SQL错误(如果存在)(在execute语句之前插入):
if($stm->execute()){var_dump($stm->fetchAll());}否则{var_dump(stm->errorInfo());}
也可以显示结果吗?它没有显示错误,它获得了它需要的所有数据。但问题是,如果我按1键,我收集所有的ActivityID,其中UserID=$UserID。我想收集specefic activityID,但我没有用户\u activityID。“我的用户\活动”中唯一的行是ActivityID和UserID。所以我把“UserActivityId”改成了ActivityID。但是我没有输出,它说:array(size=0)empty…那么你从ajax发布什么,
user\u activityId
包含哪些信息?我不使用ajax(我知道这是一种更好的方法,但我使用这个查询:$sql=“SELECT activity..”从user\u activity,activity”。“其中user_activity.ActivityID=activity.ActivityID,user_activity.UserID=”“$UserID.”“好吧,我发现了问题,在我的JS中,我引用了表“user_activity”而不是“activity”。
$sql = "SELECT * FROM user_activity WHERE UserID = '".$userID."' AND ActivityID = ??? ";
$userActivityId = filter_input(INPUT_POST, "activity");

$sql = "SELECT * FROM user_activity WHERE UserActivityId = :id";
$stm = $db->prepare($sql);
$stm->bindValue( ":id", $userActivityId, PDO::PARAM_INT);
if($stm->execute())
{
    $rows = $stm->fetchAll();
    foreach($rows as $row)
    {
         echo $row['ActivityId'];
         break;
    }
}