Премини към съдържанието
NerdyBurdy

OOP PHP Скрипта не ми намира классът, който съм направил.

    Препоръчан отговор


    Здравейте, правя малко проектче на което целта му да е тегли и добавя данни от ДБ, като се опитвам да го направя Обектно Ориентирано.

    Направих си класс DB, в който има метод за конекция към ДБ, но като ползвам класа в другият файл, където ще вадя данните ми изписва грешка, че не намира класът, а аз съм го добавил. Съща  така ми показва сорс кода от конструктора, който съм направил на классът

    Грешката:
    _conn = new mysqli($this->_host, $this->_username, $this->_psw, $this->_dbName); if ($this->_conn->connect_error){ die("Connection failed: " . $this->_conn->connect_error); } } public function getCon(){ return $this->_conn; } } ?> 
    Fatal error: Uncaught Error: Class 'db' not found in D:\XAMP\htdocs\telepol\userInfo.php:5 Stack trace: #0 D:\XAMP\htdocs\telepol\userInfo.php(43): showData() #1 {main} thrown in D:\XAMP\htdocs\telepol\userInfo.php on line 5

    db.php

    <? php
    class db{
      private $_conn;
      private $_host = "localhost";
      private $_username = "root";
      private $_psw = "";
      private $_dbName = "users";
    
      public function __construct(){
        $this->_conn = new mysqli($this->_host, $this->_username, $this->_psw, $this->_dbName);
    
        if ($this->_conn->connect_error){
            die("Connection failed: " . $this->_conn->connect_error);
        }
      }
    
      public function getCon(){
        return $this->_conn;
      }
    }
    ?>

    userInfo.php - тук ползвам класът
     

    <?php
    require_once 'classes/db.php';
    
    function showData(){
      $conn = new db();
      $br = 1; //br is used to displat the number of each row in the table.
    
      $userQuery = "SELECT* FROM users";
      $result = $conn->getCon()->query($userQuery);
      if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
          echo "<tr> <td>" .$br ."</td> <td>" .$row["first_name"] ."</td> <td>" .$row["last_name"] ."</td> <td>" .$row["nickname"] ."</td> <td>" .$row["user_id"] ."</td> <br>" ;
          $br ++;
        }
      }
      $conn->close();
    }
    ?>
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Users Info</title>
        <!-- adding JS scripts -->
        <script type="text/javascript" src="jquery-3.1.1.min.js"></script>
        <!-- adding css -->
        <link rel="stylesheet" href="css/bootstrap.css">
        <link rel="stylesheet" href="css/bootstrap.min.css">
        <!-- my CSS -->
        <link rel="stylesheet" href="css/style.css">
      </head>
      <body>
        <table class="table table-striped table-bordered table-hover table-sm">
          <thead class="thead-default">
            <tr>
              <th>#</th>
              <th>First Name</th>
              <th>Last Name</th>
              <th>Nickname</th>
              <th>User ID</th>
            </tr>
          </thead>
          <?php showData(); ?>
        </table>
      </body>
      </html>

    Намерих си грешката. Имаше typo във db.php тага за php скрипт не беше правилен.

    Редактирано от NerdyBurdy (преглед на промените)

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    Един съвет. Размени местата на css файловете и js файловете. Мисълта ми е първо са css файловете и след това са js файловете.

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    И аз да дам няколко съвета. Ако ползвате Mysqli можете да наследите този клас от вашия. Конкретния клас DB не е въобще правилно да му инициализирате свойствата с някакви текстове(потребител,парола,порт...) за вход към базата. Параметрите се пазят в конфигурационни файлове, не по хвърчащи класове.

    ПП скриптовете се слагат точно преди затварящия таг на body.

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    Регистрирайте се или влезете в профила си за да коментирате

    Трябва да имате регистрация за да може да коментирате това

    Регистрирайте се

    Създайте нова регистрация в нашия форум. Лесно е!

    Нова регистрация

    Вход

    Имате регистрация? Влезте от тук.

    Вход


    ×

    Информация

    Този сайт използва бисквитки (cookies), за най-доброто потребителско изживяване. С използването му, вие приемате нашите Условия за ползване.