什么时候我可以使用isset和GET功能

时间:2017-05-15 09:34:34

标签: php

我正在关注如何在php中建立电子商务网站的教程,我现在的主要疑问是什么时候必须使用 isset 功能。

首先,我使用以下代码在侧栏上显示所有产品品牌:

function getBrands(){
    global $con;

    $get_brands = "select * from brands";
    $run_brands = mysqli_query($con, $get_brands);

    while ($row_brands=mysqli_fetch_array($run_brands)){
         $brand_id = $row_brands['brand_id'];
         $brand_name = $row_brands['brand_name'];
         echo "<li><a href='index.php?brand=$brand_id'>$brand_name</a></li>";
    }
}

然后有这个代码显示基于品牌的所有产品:

function get_brand_pro(){
    if(isset($_GET['brand'])){

        $brand_id = $_GET['brand'];

        global $con;

        $get_brand_pro = "select * from products where product_brand='$brand_id'"; 

        $run_brand_pro = mysqli_query($con, $get_brand_pro);

        $count_brands =  mysqli_num_rows($run_brand_pro);

        if($count_brands==0){
            echo "<h3>No products associated with this brand where foundd</h3>";
        }

        while( $row_brand_pro = mysqli_fetch_array($run_brand_pro)){

            $product_id = $row_brand_pro['product_id'];
            $product_cat = $row_brand_pro['product_cat'];
            $product_brand = $row_brand_pro['product_brand'];
            $product_title = $row_brand_pro['product_title'];
            $product_price = $row_brand_pro['product_price'];
            $product_image = $row_brand_pro['product_image'];

            echo "
                <div class='single_product'>    
                    <h3 class='product_title'>$product_title</h3>
                    <img src='admin-area/product_images/$product_image' alt='product image' width='250' height='250' />
                    <p class='product_price'>$ $product_price</p>
                    <div class='single_links'>
                        <a href='details.php?product_id=$product_id' class='details'>Details</a>
                        <a href='index.php?product_id=$product_id' class='add_cart'><button>Add to Cart</button></a>
                    </div>
                </div>

            ";
        }
    }
}

根据我的理解,如果单击一个按钮,则isset函数的工作方式相同。

为什么选择isset([$ _ GET ['brands']])? 因为我发现我的数据库中没有名为品牌的属性。

希望你能在错误的地方纠正我。

3 个答案:

答案 0 :(得分:0)

Well isset确定变量是设置还是NULL。在您的代码和数据库中,您有一个名为product_brand的属性,该属性使用该值。

您可以使用此行获取值:$brand_id = $_GET['brand']; 然后在您的查询中,您正在使用它。

答案 1 :(得分:0)

isset()函数

  

isset()函数用于检查变量是否已设置或   不。如果变量已经使用unset()函数取消设置,则不会   更长的时间。如果测试变量,则isset()函数返回false   包含NULL值。

在您的代码中解释:

echo "<li><a href='index.php?brand=$brand_id'>$brand_name</a></li>";

此处,brands=$brand_id查询字符串,其中将ID分配给“品牌” 然后我们使用if(isset($_GET['brand']))检查其集合。如果ise Set Then, 我们在另一个变量$brand_id)中获取品牌价值,然后您在select ...where product_brand = '$brand_id'中获取数据。

if(isset($_GET['brand'])){   //Check brand Is Set Or Not in Query String 

        $brand_id = $_GET['brand'];  // If is set then assign to $brand_id variable 

        global $con;

        $get_brand_pro = "select * from products where product_brand='$brand_id'";    //Here fetch the data of product table based on $brand_id which is equal to product_brand in your product table.

答案 2 :(得分:-1)

isset()实际检查是否定义了变量或数组, 例如:

$name = $_GET["name"];

检查HTTP _GET的值是否已设置为变量$ name的最佳方法是

if(empty($name)){
echo 'variable $name is empty';
}

但是如果你想直接检查全局变量/ array $ _GET而不将其赋值给变量,那就是当isset();功能是必要的。 示例

if(!isset($_GET["name"])){
echo '$_GET["name"] is not set';
}