如何在php中的每个页面上访问一个全局变量
每当我试图在代码的另一段上使用如何在php中的每个页面上访问一个全局变量,php,mysql,Php,Mysql,每当我试图在代码的另一段上使用$product\u id变量时,我在页面的不同部分的一个页面上都有这两个代码块,但它没有被识别。看一看 <?php $cart_table = mysql_query("select * from order_details where memberID='$ses_id' and status='Delivered' and addon_status=''") or die(mysql_error()); $cart_count = mysql_num_
$product\u id
变量时,我在页面的不同部分的一个页面上都有这两个代码块,但它没有被识别。看一看
<?php
$cart_table = mysql_query("select * from order_details where memberID='$ses_id' and status='Delivered' and addon_status=''") or die(mysql_error());
$cart_count = mysql_num_rows($cart_table);
while ($cart_row = mysql_fetch_array($cart_table)) {
$order_id = $cart_row['orderid'];
$status = $cart_row['status'];
$product_id = $cart_row['productID'];
$orderdate = $cart_row['ordertime'];
//Query Product table
$product_query = mysql_query("select * from tb_products where productID='$product_id'") or die(mysql_error());
$product_row = mysql_fetch_array($product_query);
//Query treat_period table
}
?>
PHP允许在整个文件中使用变量。未定义product_id的原因可能是查询未返回任何结果,或者product_id为null或空白
请在查询之前尝试以下操作:var_dump($cart_row),查看产品ID是否存在且不为空如果您发布错误的屏幕截图会更好 我想,也许你可以试试这个:
<?php
session_start();
$cart_table = mysql_query("select * from order_details where memberID='$ses_id' and status='Delivered' and addon_status=''") or die(mysql_error());
$cart_count = mysql_num_rows($cart_table);
while ($cart_row = mysql_fetch_array($cart_table)) {
$order_id = $cart_row['orderid'];
$status = $cart_row['status'];
$product_id = $cart_row['productID'];
$orderdate = $cart_row['ordertime'];
//Query Product table
$product_query = mysql_query("select * from tb_products where productID='$product_id'") or die(mysql_error());
$product_row = mysql_fetch_array($product_query);
//Query treat_period table
}
$_SESSION['productid'] = $product_id;
?>
您正在循环中存储此$product\u id
。这意味着id每次都会改变。那么,在下一个查询中,是否要匹配所有产品id?或者一个特定的产品id?我想匹配一个特定的产品id,然后你需要创建产品id数组。这是在同一个文件中吗?如果是这样,购物车表可以有多行。使用它时会出现什么错误,因为即使获得多行,也应该获得while循环中使用的最后一个产品id。ofc您应该停止使用mysql,转而使用pdo或mysqli,因为mysql已被弃用。我正在尝试引用或使用第二个查询中第一个查询的产品id。仅在第二个查询中引用product id变量编辑忘记会话开始如何在stockoverflow上附加屏幕截图?方框上方的小山图标->简短教程不鼓励人们附加错误屏幕截图。他们应该在99%的时间内以文本形式发布错误。另外,你没有解释任何事情,只是给他们输入代码。我的意思是让它比文本更容易阅读/理解查询在第一块代码中返回结果,但在第二块代码中无法识别
<?php
session_start();
$cart_table = mysql_query("select * from order_details where memberID='$ses_id' and status='Delivered' and addon_status=''") or die(mysql_error());
$cart_count = mysql_num_rows($cart_table);
while ($cart_row = mysql_fetch_array($cart_table)) {
$order_id = $cart_row['orderid'];
$status = $cart_row['status'];
$product_id = $cart_row['productID'];
$orderdate = $cart_row['ordertime'];
//Query Product table
$product_query = mysql_query("select * from tb_products where productID='$product_id'") or die(mysql_error());
$product_row = mysql_fetch_array($product_query);
//Query treat_period table
}
$_SESSION['productid'] = $product_id;
?>
<?php
session_start();
require_once'session.php';
if(isset($_SESSION['productid'])) {
$theproductid = $_SESSION['productid'];
unset($_SESSION['productid']);
} else {
// do something if product_id not found
}
$query=mysql_query("SELECT * FROM product_addon WHERE memberid='$ses_id' && productID='".$theproductid."'");
while($row=mysql_fetch_array($query)) {
$sta=$row['treat_kind'];
}
?>