Работа с базой данных.

Discussion in 'PHP' started by RedWings, 28 Jan 2019.

  1. RedWings

    RedWings New Member

    Joined:
    18 Jun 2018
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Добрый день.
    Подскажите пожалуйста, как можно правильно исправить то, что написал ниже в 3 и 4 пункте.
    Описываю в целом , что делаю и по пунктам.

    Таблица есть в phpmyadmin. пропускам
    Шаг 1:
    Создать таблицу в БД, которая будет хранить список пользователей. Таблица содержит 3 колонки имя, фамилия, должность.


    Шаг 2:
    Создать класс user, который содержит в себе 4 метода:
    1) Соединяется с БД
    PHP:
     function connect_db(){
    $conn = new mysqli_connect('localhost''root''''workers');
    //mysqli_select_db($conn, "workers")
        
    if (!$conn) {
          echo 
    mysqli_connect_errno();
          echo 
    "<br>";
          echo 
    mysqli_connect_error();
        }
    mysqli_close($conn);
    2) Создает новую запись в БД, основываясь на данных введенных в форме
    PHP:
      function create_data(){
    $sql "INSERT INTO workers (first_name, last_name, position) VALUES ('first_name', 'last_name', 'position')";
        if (
    mysqli_query($conn$sql)) {
              echo 
    "New record created successfully";
        } else {
              echo 
    "Error: " $sql "<br>" mysqli_error($conn);
        }
    }
    3) Выводит список записей из БД в виде таблицы. Если данных нет, вместо таблицы выводить сообщение "No data"
    Вот тут возник вопрос...это нужно делать через html или кодом? примерный вариант решения я продумал, но не знаю, как связать с пхп.
    HTML:
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>БД</title>
    </head>
    <body>
     
    <table border="1" cellpadding="3" cellspacing="0" width="100%">
    <tr>
        <th>Имя</th>
        <th>Фамилия</th>
        <th>Должность</th>
        
        
    </tr>
    <?php
     
    ?>
    </table>
    </body>
    </html>
    или
    PHP:
    $data = new DataDB();
    $errMsg "";   
        
    public function 
    getData($query$params false){
        
    $result_set $this->mysqli->query($this->getQuery($query$params));
        
    //$res = $this->workers->query($sql);
        
    $result_set $data->getData();
        if(
    $data === false){
            
    $errMsg "No data";
        }else{
          foreach(
    $data as $item){
            
    $id $item['id'];
            
    $first_name $item['first_name'];
            
    $last_name $item['last_name'];
            
    $position $item['position'];
            }
        }
    }
    и на послед
    Вот с этим пунктом прошу помощи...что делать?
    4) Метод, который переводит символы в верхний регистр перед сохранением в БД.
    Шаг 3:
    Создать форму которая содержит 3 поля: имя, фамилия, должность.
    При отправлении формы, поле position должно быть переведено в верхний регистр, а затем сохранено в БД.
    HTML:
    <!DOCTYPE html>
    <html>
        <head>
            <title>Data</title>
            <meta charset="utf-8" />
        </head>
        <body>
            <h1>DataBase</h1>
            
        <?php
           // if($errMsg)
            //    echo "<h3>$errMsg</h3>"
            ?>
            
            <form action = "<?= $_SERVER['PHP_SELF']; ?>"
            method='post'>
                <p>First Name:<br /><input type="text" name="first_name" /></p>
                <p>Last Name:<br /><input type="text" name="last_name" /></p>
                <p>Position:<br /><input type="text" name="position" /></p>
                <p><input type="submit" value="Отправить"></p>
     
            </form>
            
             <?php
            //$post = $data->getData();
            //print_r($posts);
            ?>
            
        </body>
    </html>
    примерное решение
    PHP:
    function saveData($position){
            
    $result_set $this->_db->exec($sql);
            
    $conv mb_strtoupper(mb_substr($position01));
            return 
    $conv.mb_substr($position1);
    }
     
  2. mail156

    mail156 Banned

    Joined:
    28 Sep 2018
    Messages:
    464
    Likes Received:
    357
    Reputations:
    0
    Изучи что делает var_dump и xdebug
    Сделай сначала такой скрипт без ООП (на функциях), потом с ООП (объектно-ориентированное программирование).