我创建了一个名为product_的会话。 当我点击我的添加到购物车按钮时,我的
$_SESSION['product_' . $_GET['add']]
就像这个产品_171
171 是我拥有的产品的ID。
我打印出我的查询,看看发生了什么,我的item_id没有回应171
它是sendind 17 而非 171 。
我试图改变数字,但它没有用。
这是我的代码。
function cart(){
global $conn;
foreach ($_SESSION as $name => $value) {
if($value > 0){
if(substr($name, 0, 8 ) == "product_"){
$length = strlen($name -8);
$item_id = substr($name, 8 , $length);
$query = "SELECT * FROM gallery2 WHERE id =".escape_string($item_id)."";
print_r($name); echo' <strong>this is the name</strong></br>';
print_r($item_id); echo' <strong>this is the id without the name -product_</strong></br>';...
这就是我得到的
product_171这是名称
17这是没有名称的产品_产品_ 为什么我没有得到我的完整身份?
答案 0 :(得分:1)
检查字符串长度的代码段错误:
var functionforscroll = function(id){
var reqId = "#"+id;
window.scrollTo(0, $(reqId).offset().top-85);
}
您正在检查if(substr($name, 0, 8 ) == "product_"){
$length = strlen($name -8);
$item_id = substr($name, 8 , $length);
...
的strlen,而$name - 8
等于$name - 8
,其中包含2个字符,因此它总是会得到2个字符。
-8
应该超出-8
功能:
strlen()
答案 1 :(得分:0)
您可以使用explode来获取ID。
foreach ($_SESSION as $name => $value) {
$data = explode("_", $name);
$item_id = $data[1];
...