@givier

Почему не выводится значение переменной и откуда ему браться?

Хотел переделать немного сайт. Есть три страницы сайта. На первых двух подключение к бд и переменные
<?php
   if (isset($_GET['id'])) {
      $sql = mysqli_query($link, "SELECT `ID`, `Name`, `Price`, `Image`, `Nickname` FROM `products` WHERE `ID`={$_GET['id']}");
      $product = mysqli_fetch_array($sql);
	  $id = isset($_GET['id']) ? $product['ID'] : ''; 
	  $name = isset($_GET['id']) ? $product['Name'] : ''; 
	  $price = isset($_GET['id']) ? $product['Price'] : '';  
	  $image = isset($_GET['id']) ? $product['Image'] : ''; 
   }
?>

На этих же двух они выводятся вот так:
<?php echo $name ?>
Редактируя 3ю страницу увидел что не выводится цена товара, там ее вызывают во так:
<?=$amount;?>
полный список увидел в подключенном к странице конфиге:
<?php
   if (isset($_GET['id'])) {
      $sql = mysqli_query($link, "SELECT `ID`, `Name`, `Price`, `Desc`, `Image`, `Nickname` FROM `products` WHERE `ID`={$_GET['id']}");
      $product = mysqli_fetch_array($sql);
	  $order_id = isset($_GET['id']) ? $product['ID'] : ''; 
	  $amount = isset($_GET['id']) ? $product['Price'] : ''; 
	  $description = isset($_GET['id']) ? $product['Name'] : ''; 
   }
?>

Почему эти переменные не выводятся? на предыдущей странице нашел вот еще что:
<div class="col-xs-12 credit-card-form__submit-inner" style="padding: 0">
				<input type="hidden" name="amount" value="<?=$amount;?>">
				<input type="hidden" name="description" value="<?=$description;?>">
				<input type="hidden" name="order_id" value="<?=$order_id;?>">
				<button class="common-button btn-submitjs-button-submit button " type="submit" name="submit">Оплатить</button>
			</div>

Как это должно работать и почему не работает?
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 1
ArsenyMatytsyn
@ArsenyMatytsyn
Руководитель frontend направления, предприниматель
Должен быть задан GET-параметр в адресной строке, это проверяется isset (is set), а параметр берется с помощью $_GET. В самом скрипте с помощью тернарника происходит проверка и если не получено значение id, то выводиться пустая строка.

Для этого адрес скрипта в браузере должен выглядеть примерно так: http://site.com?id=1. Нус и если нет подключения, или нет соответствующей записи с данным ID, то последующие условия не вернут ничего в любом случае.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы