@SinSin35

Как подключить два php файла к одной бд?

Есть 3 php файла: первый - основной index.php , второй - содержит функцию, которая создает определенный div и подключается к основному файлу через require_once, третий файл - подключение к бд и подключается к первому через include_once.
Сейчас возникла необходимость подключить бд ко второму файлу , однако $conn там выдает NULL.
Второй файл:
<?php
include_once("db_connection.php");
function component($productimage,$productname,$producttext,$productdiscount,$productprice,$productid){
$element = "
<div class=\"col-md-4 col-sm-6 my-3 my-md-0\">
	<form action=\"index.php\" method=\"post\">
		<div class=\"card shadow\">
			<a href='./index.php?product=$productid'>
			<div id=\"card-top\">
				<img src=\"$productimage\" alt=\"$productname\" class=\"img-fluid card-img-top\">
			</div>
			<div class=\"card-body\">
				<h5 class=\"card-title\">
					$productname
				</h5>
			</a>
				<h6>
					<i class=\"fas fa-star\"></i>
					<i class=\"fas fa-star\"></i>
					<i class=\"fas fa-star\"></i>
					<i class=\"fas fa-star\"></i>
					<i class=\"far fa-star\"></i>
				</h6>
				<p class=\"card-text\" id=\"description\">
					$producttext
				</p>";
				if($productprice==$productdiscount){
					$element.="<h5>
					<span class='price' id='disc'> $productprice P</span>
					</h5>";
				}
				else{
					$element.="<h5>
					<small><s class='text-secondary' id='nondisc'>$productdiscount</s></small>
					<span class='price' id='disc'> $productprice P</span>
					</h5>";
				};
				$sql = "SELECT * FROM zakaz WHERE Prod_id=".$productid.";";
				var_dump($sql);
				$result = mysqli_query($conn,$sql);
				$resultCheck = mysqli_num_rows($result);
				if ($resultCheck > 0){
				$element.="<button type='submit' href='./index.php' class='btn btn-warning my-3' name='add'>Добавить в корзину</button>
							<input type='hidden' name='product_id' value='$productid'>";}
				else{
				$element.="<button type='submit' href='./index.php' class='btn btn-warning my-3' name='add' disabled>Добавлено в корзину</button>
					<input type='hidden' name='product_id' value='$productid'>";					
				};
				$element.="
			</div>
		</div>
	</form>
</div>";
echo $element;
}
?>


Третий файл:
<?php 
$dbServername = "localhost";
$dbUsername="root";
$dbPassword="";
$dbName="kursor";

$conn=mysqli_connect($dbServername,$dbUsername,$dbPassword,$dbName);

if (!$conn){
	die("Connection failed: ".mysqli_connect_error());
}
?>
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Вам надо изучать область видимости переменных.

А в случае приведённого кода решения два: кошерное и идиологически правильное - вставить $conn в список аргументов функции, и второе, за которое сильно ругают - внутри функции сделать объявление global $conn;. Конечно возможен и третий способ, include("db_connection.php"); внутрий функции, но это уже махровый быдлокодеризм и тупая растрата свободных подключений к MySQL.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Надо к файлу подключать не БД, а HTML.

У тебя у самого судороги не начинаются, когда ты смотришь вот на это
<div class=\"col-md-4 col-sm-6 my-3 my-md-0\">
  <form action=\"index.php\" method=\"post\">
    <div class=\"card shadow\">
      <a href='./index.php?product=$productid'>

?
А писать все эти палочки и кавычечки не задолбался?

А теперь подмай, зачем тебе база данных в HTML?

Не проще выполнить свой запрос в основном файле, там же, где делаются остальные запросы, а в этом, во-первых, писать HTML как есть,

<div class="col-md-4 col-sm-6 my-3 my-md-0">
  <form action="index.php" method="post">
    <div class="card shadow">
      <a href="./index.php?product=<?=$productid?>">
      <div id="card-top">


а во-вторых, и функция никакая не будет нужна, и вместо вызова функции надо будет сделать просто include этого файла.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
от 300 000 до 500 000 ₽
07 мая 2024, в 22:37
25000 руб./за проект
07 мая 2024, в 22:24
7000 руб./за проект
07 мая 2024, в 21:57
600 руб./за проект