我尝试在网站上搜索,但找不到适合我问题的答案,或者也许我做错了,但我实际上正在为我的最后一年项目制作一个证券交易所系统,我来了通过这个问题。 首先,我通过它传递一个变量:
<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
并且工作正常。
最佳答案
注意事项:
在查询中使用变量之前检查变量是一个很好的做法
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/