如何在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'];
    }
?>