我是php和mysql的新手,所以可能是我错过了一些明显的东西,但这里是:
我正在建立一个数据库来存储有库存的项目。每个项目都分配了一定数量的库存(例如5)。每个项目都显示在我的网页上,旁边有按钮,可以手动从数据库中添加或删除库存:
$query = "SELECT * FROM classes";
// This uses a mysql function that act upon our $query variable above
$result = mysql_query($query);
// This is a loop that says "while there is data to display...keep looping round and displaying that data".
while($class_data = mysql_fetch_array($result)) {
// Now we are going to echo that data
echo
"<div class='"classmanagertablecontent'">" . $class_data['name'] . "</div>
<div class='"classmanagertablecontent'">" . $date['date'] . "</div>
<div class='"classmanagertablecontent'">" . $class_data['stock'] . "</div>
<div class='"classmanagertablecontent'">" . $class_data['button_paypal'] . "</div>";
<form action="../url.php" method="post">
<input type="hidden" name="button_paypal_fromform" value="<?php echo $class_data['button_paypal'] ?>">
<input type="submit" value="remove stock" name="remove stock">
</form>
<form action="../url.php" method="post">
<input type="hidden" name="button_paypal_fromform" value="<?php echo $class_data['button_paypal'] ?>">
<input type="submit" value="add to stock" name="add to stock" >
</form>
</div>
}
"添加到库存"按钮发送到的url中的代码如下:
<?php
$button_paypal = $_POST['button_paypal_fromform'];
mysql_query("UPDATE classes SET stock = stock+1 WHERE button_paypal = ". $button_paypal ."");
?>
不管什么原因WHERE button_paypal = "一个数字"它工作……但是如果button_paypal = "a string",它什么也不做。
我无法理解这个。我将使用的paypal托管按钮是由字母和数字组成的,所以它需要与两者的组合工作。
I have try…
echo "$button_paypal";
…在我的url.php页面和按钮读取良好(例如SD76S9SFGV)
在我的数据库"button_paypal"是一个文本字段,但我也尝试过VARCHAR。STOCK是INT类型
如果有人能帮忙,我将非常感激。谢谢。# hopethismakessense
你所需要做的就是把你的字符串值用单引号括起来:
<?php
mysql_query( "UPDATE classes SET stock = stock+1
WHERE button_paypal = '{$_POST['button_paypal_fromform']}' ");
我将数组变量包装在{}括号中,因此您可以直接在双引号查询中包含(不需要像" . $var . "
那样连接,也不需要创建第二个变量,当您可以直接引用它时)