Веб-страница Php Не удается найти переменную подключения

Mohammad спросил: 13 июня 2018 в 11:15 в: php

Я разрабатываю систему онлайн-заказа. Я хочу показать данные о продуктах при загрузке веб-страницы на сервере. Детали моих продуктов хранятся в базе данных mysql. Но проблема в том, что когда я запускаю приложение в localhost, я получаю следующие ошибки.

Примечание. Неопределенная переменная: con inC: \ wamp64 \ www \ onlineordering \ functions \ datafetching.php on line 33

Предупреждение: mysqli_query () ожидает, что параметр 1 будет mysqli, null указан в C: \ wamp64 \ www \ onlineordering \ functions \ datafetching.php в строке 33

Вот мой connection.php

<?php$servername = "localhost";
$username = "root";
$password = "";
$db = "ecom1";// Create connection
$con = mysqli_connect($servername, $username, $password,$db);// Check connection
if (!$con) {
    die("Connection failed: " . mysqli_connect_error());
}?>

Вот код для datafecthing.php.

<?php
include "db/connection.php";?><?phpfunction getrecords($exePro,$msg)
{  $counPro= mysqli_num_rows($exePro);
                    if($counPro>0)
                    {                        $classPro=1;
                       while($resPro = mysqli_fetch_array($exePro))
                       {
                         $productcode= $resPro["productcode"];
                         $auto_number= $resPro["auto_number"];
                         $productname= $resPro["productname"];
                         $price= $resPro["price"];
                         //setlocale(LC_MONETARY,"en_US");
                         $price = $price;
                         $show_price= $resPro["show_price"];
                         $discount = (($show_price-$price)*100)/$show_price;
                         $img = "defualt.jpg";
                        $sql = "select * from productsimage where productanum='$auto_number' and size_type='s'";
                        $exeimg = mysqli_query($con,$sql)or die(mysql_error());                        if(mysqli_num_rows($exeimg)>0)
                        {
                        $resimg = mysqli_fetch_array($exeimg);
                        $img = $resimg['imagename'];
                        }
                        if($classPro%3==0)
                        {
                         $lastclass='no_margin_right';
                        }else{
                         $lastclass='';
                        }                        ?>                <div class="product_box  <?php echo $lastclass;?>" >
                <form method="post" action="productdetail.php" id="frmdetail<?php echo $classPro;?>">
                <input type="hidden" name="productname" value="<?php echo $productname?>">
                <input type="hidden" name="pid" value="<?php echo $productcode?>">
                <input type="hidden" name="id" value="<?php echo $auto_number?>">
                </form>                <img src="productimages/<?php echo $img?>" alt="Image 
<?php echo $classPro;?>"  style="height:150px;width:200px;cursor:pointer;" onclick="subform('frmdetail<?php echo $classPro;?>')"; />                <h3><?php echo $productname;?></h3>
                <p class="product_price"><span style="text-decoration:line-through;"><?php echo  currency.$show_price?></span><br/>
                <?php echo currency.$price;?>
                </p>                <form method="post" action="shoppingcart.php" id="frmaddproduct<?php echo $classPro;?>">
                <input type="hidden" name="product_code" value="<?php echo $productcode?>">
                <input type="hidden" name="product_qty" value="1">
                <input type="hidden" name="type" value="add">
                <input type="hidden" name="pid" value="<?php echo $auto_number;?>">
                <input type="hidden" name="return_url" value="<?php echo $current_url;?>">                </form>                <a style="cursor:pointer;" onclick="subform('frmaddproduct<?php echo $classPro;?>')" class="add_to_card">Add to Cart</a>                <a style="cursor:pointer;" onclick="subform('frmdetail<?php echo $classPro;?>')" class="detail">Detail</a>
                 </div>                         <?php
                        $classPro++;
                        }
                    }else
                    {
                    //echo "Product is not available";
                    echo $msg;
                    }}?>

Вот скриншот при запуске приложения ..

2 ответа

Есть решение
Smartpal ответил: 14 июня 2018 в 08:02

Передача соединения с пользовательской функцией getrecords

Возьмите еще один параметр в определении функции.

function getrecords($exePro,$msg,$con){
//Code.....
}

Когда вы вызываете getrecords

getrecodes ($somedata,$somemsg,$con);

Когда вы вызываете свою настраиваемую функцию, она получает соединение из connection.php и передает ее в настраиваемую функцию как аргумент, поэтому вы можете использовать $ con.

Smartpal ответил: 13 июня 2018 в 12:06
@Mohammad yeah, пользовательская функция не может напрямую обращаться к $ con, вы должны отправить параметр $ con through. Таким образом, ваша пользовательская функция может использовать это соединение для подготовки выражения mysqli
Mohammad ответил: 13 июня 2018 в 12:54
да из базы данных. когда сначала загружается веб-страница, я хочу отображать продукты
Smartpal ответил: 13 июня 2018 в 12:57
Давайте продолжим эту дискуссию в чате.
SSpoke ответил: 13 июня 2018 в 12:10

попробуйте это

function getrecords($exePro,$msg)
{
    global $con;//...
}
Smartpal ответил: 13 июня 2018 в 12:14
Использование глобальной переменной не является хорошей практикой. Проверь это. stackoverflow.com/questions/1557787/...
SSpoke ответил: 13 июня 2018 в 12:17
Я не понимаю эту страницу вопросов, но это как ее решить, если вы хотите включить глобальную оболочку подключения на каждую страницу
Smartpal ответил: 13 июня 2018 в 12:23
глобальная переменная может влиять на другую переменную с тем же именем из других файлов / классов / функций.
SSpoke ответил: 13 июня 2018 в 12:54
o ну, вы должны держать подсчет глобальных имен, чтобы у вас не было таких же ха-ха.

Дополнительное видео по вопросу: Веб-страница Php Не удается найти переменную подключения

Выводим анонсы статей на главную PHP + MySQL | Урок 4

Передача значений переменных из JavaScript в PHP и наоборот

Назначение языков веб-разработки (html, css, php, js) на примере формы