Нормальный PHP к Codeigniter - PullRequest
1 голос
/ 20 марта 2020

Я застрял, пытаясь понять это. Я хотел бы преобразовать эту HTML PHP страницу в страницу, созданную с помощью CI. Это то, что я хочу получить (сделано с помощью basi c php) , и это то, что я могу изменить делать с Codeigniter Это результат с Codeigniter

Вот моя страница просмотров

<head>
    <style>
        table td, table th {
            padding: 5px;
            text-align: center;
        }
        table th {
            background:#3390FF;
        }
        table {
            width: 100%;
            border: 2px solid #ccc;
            border-collapse: collapse;
        }
    </style>
</head>

<main role="main" class="col-md-9 ml-sm-auto col-lg-10 px-4">
    <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
        <h1 class="h2">Lista alergeni si alimente</h1>
    </div>
    <body>
        {COUNT}
        <h4>Total alimente: {total}</h4>
        {/COUNT}
        <div style='max-width:500px; margin-right: 1px;'>
            <table>
                <thead>
                    <tr>
                        <th>&nbsp;</th>
                        {ALERGENI}
                        <th>{alergen} </th>
                        {/ALERGENI}
                    </tr>
                <tbody>
                    {ALIMENTE}
                    <tr>
                        <td>{aliment}</td>

                        <td></td>
                    </tr>
                    {/ALIMENTE}
                </tbody>
            </table>  
        </div>
    </body>
</html>`

А вот мой файл контроллера

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Alergeni_alimente extends CI_Controller {

    public function index() {
        $lista_alimente = $this->db->query('select alimente.id, alimente.name as alimente_name  FROM alimente order by name desc')->result();
        $lista_alergeni = $this->db->query('select alergeni.id, alergeni.name FROM alergeni order by name desc')->result();

        $content = $this->parser->parse('alergeni_alimente/select', array("ALERGENI" => $lista_alergeni, "ALIMENTE" => $lista_alimente), true);
        $TITLE = "Selecteaza alergen pentru aliment ";
        $array = array('TITLE' => $TITLE, 'CONTENT' => $content);
        $this->parser->parse('TEST', $array, false);
//        echo '<pre>';
//        print_r($lista_alergeni);
//        print_r($lista_alimente);
    }

    public function selected() {

        $data = array(
            'alergen_id' => $_POST['alergen_id'],
            'aliment_id' => $_POST['aliment_id']
        );

        $this->db->insert('alimente_alergeni', $data);

        redirect('alergeni_alimente');
    }

    public function list() {
        $alergeni_aliment = $this->db->query('select alergen_id, aliment_id, alimente.name as aliment_name, alergeni.name as alergen_name from alimente_alergeni '
                        . 'inner join alimente on alimente_alergeni.aliment_id = alimente.id '
                        . 'inner join alergeni on alimente_alergeni.alergen_id = alergeni.id order by alimente.name asc, alergeni.name asc')->result();
        $alergeni = $this->db->query('select name as alergen from alergeni')->result();
        $alimente = $this->db->query('select name as aliment from alimente')->result();
        $totalQuery = $this->db->query("select count(id) as total from alimente")->result();

        $content = $this->parser->parse('alergeni_alimente/list', array('ALERGENI_ALIMENT' => $alergeni_aliment, "COUNT" => $totalQuery, 'ALERGENI' => $alergeni, 'ALIMENTE' => $alimente), true);
        $TITLE = "Lista alimente si alergenii corespunzatori";
//        die();
        $array = array('TITLE' => $TITLE, 'CONTENT' => $content);
        $this->parser->parse('TEST', $array, false);
    }

}

Что должно, кто-то сказал мне использовать оператор foreach, но я не уверен, где.

Редактировать 1: Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 20 марта 2020

@ Андрей Мэтт, Прежде всего, пожалуйста, не делайте никаких запросов в контроллере, это плохая практика. Используйте модель для взаимодействия с БД. То, что вы можете сделать, это сделать вызов функции (загрузить модель, выполнить вызов функции и передать необходимые параметры) из контроллера. В модели вы пишете запрос и получаете набор данных из базы данных. Если возможно, создайте требуемую структуру и верните массив в контроллер (хотя вы можете написать бизнес-логи c - создание структуры в контроллере, это ваш вызов). Как только вы это сделаете, вы можете передать в виде массива $ data в ваше представление, а в Views вы используете для каждого l oop отображение данных в табличном формате.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...