php - 传递变量和 php

标签 php jquery mysql variables

我尝试在网站上搜索,但找不到适合我问题的答案,或者也许我做错了,但我实际上正在为我的最后一年项目制作一个证券交易所系统,我来了通过这个问题。 首先,我通过它传递一个变量:

<a href='#' id='<?php echo "". $row['id'] . ""?>' class="sell">

到jquery:

$(function(){
  $(".sell").click(function(){
    var element = $(this);
    var userid = element.attr("id");
    var info = 'id=' + userid;

    if (confirm("Do you really want to sell?")){
      $.ajax({
        url: 'sellstock.php',
        type: 'POST',
        data: info,
        success: function(){
          alert('Sold, Please refresh to see your balance');
        }
      });

      $(this).parent().parent().fadeOut(300, function({
        $(this).remove();
      });
    };

    return false;
  });
});

jquery 调用 sellstock.php

<?php
include('session_user.php');

$stock_id = $_POST['id'];

$sql_getinfo = "SELECT *
                FROM transaction_user
                WHERE id='$stock_id'";

$row_info = mysqli_fetch_array($sql_getinfo, MYSQLI_ASSOC);

$company_id = $row_info['company_id'];
$company_shares = $row_info['number_of_shares_bought'];
$company_price = $row_info['Price'];
$company_total = $row_info['Price_Value'];

$updatedbalance = $balance + $company_total;

$sql_stockinfo = "SELECT Shares_for_sale
                  FROM company_listed
                  WHERE id='$company_id'";

$row_stock = mysqli_fetch_array($sql_stockinfo, MYSQLI_ASSOC);
$shares = $row_stock['Shares_for_sale'];


$updatedshares = $company_shares + $shares;

$updatebalance = "UPDATE balance SET current_balance = '$updatedbalance' where username ='$login_session'";
$resultbalance = mysqli_query($db , $updatebalance);

$updateshare = "UPDATE company_listed SET Shares_for_sale = '$updatedshares' where id= '$stock_id'";
$resultshare = mysqli_query($db, $updateshare);


$sqldelete = "DELETE FROM transaction_user WHERE id='$stock_id'";
$result = mysqli_query($db, $sqldelete);

header("location: Dashboardd.php");
?>

我想要做的是删除股票(从给定的 ID 中),但在此之前,它应该更新用户的余额并更新公司的 shares_for_sale

$sqldelete = "从 transaction_user WHERE id='$stock_id' 中删除"; $result = mysqli_query($db, $sqldelete);

$sqldelete 行实际上正在删除交易,但我无法获取公司和用户余额的任何更新。更新查询正在工作,因为当我对它们进行硬编码时,它正在工作,但问题是对于 $stock_id,它不适用于 $sql_getinfo 并且因为这不是$sql_stockinfo 不起作用,$updateshare 也不起作用。

session_user.php 调用 $login_session$balance 并且工作正常。

表格:https://scontent-mrs1-1.xx.fbcdn.net/v/t35.0-12/16491661_10154975964354500_1753389524_o.jpg?oh=583059fbe0e2b8663acceedf0f1485c6&oe=58964E22

最佳答案

注意事项:

在查询中使用变量之前检查变量是一个很好的做法

if(isset($_POST['id']))
{
  $stock_id = $_POST['id'];
}
else {
 //Show error message or redirect to the homepage. whatever you prefer
}

无需添加额外的引号

<a href='#' id ='<?php echo $row['id']; ?>' class="sell">

在查询中的变量周围小心使用引号

$sql_getinfo = "SELECT *
                FROM transaction_user
                WHERE id= ".$stock_id;

$sql_stockinfo = "SELECT Shares_for_sale
                  FROM company_listed
                  WHERE id= ".$company_id;

$updatebalance = "UPDATE balance SET current_balance = ".$updatedbalance." where username = '".$login_session."'";

$updateshare = "UPDATE company_listed SET Shares_for_sale = ".$updatedshares." where id= ".$stock_id;

$sqldelete = "DELETE FROM transaction_user WHERE id= ".$stock_id;

关于php - 传递变量和 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42009385/

相关文章:

php - 亚马逊预签名网址,只允许某些文件类型?

java - 如何用特定的字符串更新mysql中的列字段?

mysql - Javascript 自动完成列出 MySQL 结果

javascript - 如何使用 jQuery/JavaScript 将每个字符添加到表单字段中

javascript - 第一次点击时 jQuery 不会触发

php - 查询未显示 0 值 mysql

php - 如何在 PHP7 下安装 mcrypt? Laravel 需要它

php - 加速mysql查询

PHP php.ini 文件在 web 公共(public)根目录中?够安全吗

javascript - jQuery - 隐藏一个特定的 div 直到另一个被点击,当 div 悬停时再次隐藏那个 div