Извлечение информации из базы данных MYSQL & Codeigniter

предыдущий вопрос здесь, если вам, ребята, нужна другая информация:

Извлечение информации из базы данных

ДРУГОЕ ОБНОВЛЕНИЕ

Хотя все вы были очень полезны. Я'нам удалось получить результаты, но яя все ещедействительно очень запутался Допустим, я хочу сначала увидеть результаты, так что я не обращаю внимания на контроллер.

Я сделаю контроллер после того, как увижу, что мои команды верны :) Я не знаю, почему, но это своего рода способ понять всю концепцию. тем не мение..

для меняmembership_model.php

function member_here()
{
$this->db->select('');
$this->db->from('membership');
$this->db->where('username',$this->input->post('username'));
$q=$this->db->get('');

if($q->num_rows() > 0) {
$data = array();
foreach($q->result() as $row) {
    $data=$row;
}
return $data;
}
}

и мойsignup_view.php






load->view('includes/header')?>



 'What was your childhood nickname?',
              'value'   => 'What was your childhood nickname?'
            );

$option2= array(
    'name'  => 'What is your pet\'s name?',
    'value' => 'What is your pet\s name?'
);

$option3= array(
    'name'  => 'In what city were you born?',
    'value' => 'In what city were you born?'
);

$option4= array(
    'name'  => 'What is the color of your eyes?',
    'value' => 'What is the color of your eyes?'
);

$option5= array(
    'name'  => 'What is your favorite color?',
    'value' => 'What is your favorite color?'
);


echo form_open('login/create_member');
echo "
Male  
Female






 Account Information:


 
";
echo "Userame*: ";
echo "";
echo form_input('username', set_value('username'));
echo "";
echo "Password*: ";
echo "";
echo form_password('password');
echo "";
echo "Password Confirmation*: ";
echo "";
echo form_password('password2');
echo "";
echo "";
echo "Security Question*:";
echo "";
echo "";
?>

What was your childhood nickname?
What is your pet's name?
In what city were you born?
What is the color of your eyes?
What is your favorite color?







Вот и весь мой код. Я'я пытаюсь получить имя, фамилию, адрес электронной почты и всю другую информациюавторизованный пользователь выйти из базы данных.

если я использую$data[]=$row; вместо$data=$row; в моей модели происходит ошибка, говорящая это:

Severity: Notice

Message: Trying to get property of non-object

Filename: views/members_area.php

Line Number: 20

И что же мне делать. я'м кодирование без контроллера. я'Я просто проверяю результаты Спасибо!!

 Dinesh12 нояб. 2012 г., 04:46
покажите код для views / members_area.php .. конкретно строка 20..а если у вас нет контроллера, где вы загружаете модель? $ This->load->модель (»membership_model»); .. а как ты получаешь доступ к функции модели ??
 manix12 нояб. 2012 г., 04:37
Это'так сложно отлаживать без контроллера. Но ошибки не имеют смысла. Как вы звонитеmember_here() в представлении?

Ответы на вопрос(2)

Это может быть очень просто прочитать руководство пользователя для более простых примеров

Model

Class Members Extends CI_Model
{
    function __construct(){
        parent::__construct();
    }

    function member_here()
    {
            $this->db->where('username',$this->input->post('username'));
        $query  =   $this->db->get('membership');

        if($query->num_rows() > 0) 
        {
            return $query->result();
        }
    }
}

Controlelr 

Class Login extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        $this->load->view('login_view');
    }

    public function result()
    {
        $this->load->model('membership');
        $data['member'] = $this->membership->member_here(); 
        $this->load->view('result_view', $data);
    }
}

And in View you can simple do it


name?>

 Marishka12 нояб. 2012 г., 07:31
Спасибо огромное :)
Решение Вопроса

Есть несколько вещей, которые можно уточнить:

model это сущность, которая сохраняется в базе данных. В твоем случае:MembershipAcontroller отвечает за загрузку модели и передачу ее представлению, которое будет показаноview только должен иметь HTML разметку, без функций, без логики.База данных

Предполагая, что ваша база данных имеет структуру ниже.

+---------------+-----------+------------+--------------------+
| id_membership | username  | name       | email              |
+---------------+-----------+------------+--------------------+
|             1 | Marishka  | marishkapv | [email protected] |
|             2 | johndoe   | John       | [email protected]       |
|             3 | dennisv   | Dennis     | [email protected]       |
+---------------+-----------+------------+--------------------+
модель

Вы могли бы построить свою модельclass Membership extends CI_Model в/application/models/membership.php файл.

class Membership extends CI_Model {

    function __construct()
    {
        parent::__construct();
    }

    function member_here()
    {
        $this->db->select('');
        $this->db->from('membership');
        $this->db->where('username',$this->input->post('username'));
        $q = $this->db->get('');

        if($q->num_rows() > 0) 
        {
            $data = array();
            foreach($q->result() as $row) 
            {
                $data=$row;
            }
            return $data;
        }
    }
}
контроллер

Предположим, что у вас есть страница входа наexample.com/index.php/login, это должно располагаться на/application/controllers/login.php как показано ниже:

class Login extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        $this->load->view('login_view');
    }

    public function result()
    {
        $this->load->model('membership');
        $data['member'] = $this->membership->member_here(); 
        $this->load->view('result_view', $data);
    }
}

Похоже, что загруженные модели бросают эти две строки:

//Load the model in make use of its functions
$this->load->model('membership'); 

//load the row whit the given username
//the result is assigned to array with the key "member", in the view you access this
//value with $member var
$data['member'] = $this->membership->member_here(); 
Просмотры

Как вы заметили в коде контроллера, есть два файла представлений,login_view а такжеresult_view, Первый покажет HTML-форму, где вы можете указать имя пользователя, чтобы вызвать запрос на выборку.result_view показать информацию о члене в соответствии с выбранным членством

login_view.php


    
    
    
        Type your username: 
        
    
    

result_view.php

Details:
<p>
Id: id_membership?> <br>
Username: username?> <br>
Email: email?>
</p>
 Marishka12 нояб. 2012 г., 07:31
Спасибо вам большое! :)
 manix12 нояб. 2012 г., 15:25
Рад помочь вам :)

Ваш ответ на вопрос