Когда я могу использовать функцию isset и GET

-7

Я следую учебному курсу о том, как сделать сайт электронной торговли в 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 ['brand']])? Потому что я вижу, что в моей базе данных нет атрибутов с названиями брендов.

Надеюсь, вы можете исправить меня, где не так.

спросил(а) 2017-05-15T12:34:00+03:00 3 года, 2 месяца назад
0
79

Well isset определяет, установлена ли переменная или NULL. В вашем коде и базе данных у вас есть атрибут с именем product_brand, который использует это значение.

Вы получаете значение, используя эту строку: $brand_id = $_GET['brand']; И затем в вашем запросе вы его используете.

ответил(а) 2017-05-15T12:41:00+03:00 3 года, 2 месяца назад
40

Функция isset()

Функция isset() используется для проверки того, установлена ли переменная или нет. Если переменная уже отключена с функцией unset(), она больше не будет установлена. Функция isset() возвращает false, если тестовая переменная содержит значение NULL.

В вашем коде объясните:


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

Здесь brands=$brand_id - это запрос String, который присваивает идентификатор "бренду", а затем мы проверяем его набор, используя if(isset($_GET['brand'])). и если ise Set Then, мы получаем значение бренда в другой переменной ($brand_id), а затем вы $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.

ответил(а) 2017-05-15T12:45:00+03:00 3 года, 2 месяца назад
-4

isset() действительно проверяет, определена ли переменная или массив, например:

$name = $_GET["name"];

Лучший лучший способ проверить, было ли значение HTTP _GET установлено на переменную $ name, является

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

Но если вы хотите напрямую проверить глобальную переменную/массив $ _GET, не присваивая ее переменной, то есть когда isset(); функция нужна. пример

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

ответил(а) 2017-05-15T13:17:00+03:00 3 года, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема