2015-10-30 3 views
-3

У меня есть 4 таблицыКак создать таблицу результата в codeigniter?

Таблица Пользователь

id | user 
----------- 
55 | Jhon  
56 | Krish 
57 | Boss 

Таблица Выплат

id | Payout_Date 
------------------ 
1 | 31.10.2015 
2 | 24.10.2015 
3 | 17.10.2015 

Таблица Начисление

Userid | Date  | Earning 
------------------------------------ 
55  | 31.10.2015 | 5$ 
56  | 31.10.2015 | 1$ 
57  | 31.10.2015 | 3$ 
55  | 30.10.2015 | 5$ 
56  | 30.10.2015 | 12$ 
57  | 30.10.2015 | 0$ 
55  | 29.10.2015 | 5$ 
56  | 29.10.2015 | 4$ 

Когда я добавить новую дату выплаты (Payout_Date)

Я хочу, чтобы заработать> 10 $ в их Дата последнего платежа между новой датой выплат, если не платить перед этим пользователем, их последний платеж_Дата нет (получить все доходы)

затем добавьте эти результаты в таблицу «Оплата», , с новым Payout_Date до Payment_Date, а Last Payment_Date - From_Date.

Таблица оплаты

id | Userid | From_Date | Payment_Date | Earning | Status 
------------------------------------------------------------------ 
    1 | 55  | 24.10.2015 | 31.10.2015 | 12$  | 0 
    2 | 56  | 24.10.2015 | 31.10.2015 | 17$  | 0 

Как написать, что на Codeignaiter контроллер и модель

Извините за мой английский грамматической ошибкой.

+0

Я тебя не понял. что вы ожидаете? –

+0

Пожалуйста, проверьте теперь, что числа – Jeyakopy

ответ

0

Прежде чем думать о CodeIgniter, подумайте о запросе базы данных, который вы хотите запустить. Вы хотите, чтобы все данные из двух таблиц выполнялись при выполнении двух условий. Таким образом, вы захотите присоединиться к таблицам вместе и показать результаты, когда доход составляет более 10 долларов США (и я предполагаю), когда значение From_Date превышает или совпадает с последним значением Payment_Date, но после предыдущего Payment_Date.

В CodeIgniter они дают вам более прощающий способ писать ваши запросы, но механики все те же.

Таким образом, вы могли бы написать один, угловатый запрос, который делает все это сразу, но это было бы гораздо проще разбить его на несколько запросов:

  1. запросов за последний день оплаты до Cегодня.
  2. запрос на дату платежа до этого.
  3. запрос на получение дохода пользователя между этими двумя датами.

Я покажу вам свое лучшее предположение о том, что вы хотите в запросе 3, а затем укажете на the CI Documentation. Я предполагаю, что вы делаете этот запрос в классе, который расширяет CI_Model. Я попытался использовать простейший для чтения синтаксис. Кроме того, я предполагаю, что вы удалите $ из значений в столбце Earning и просто используйте число. (Я не проверял этот код, но он должен получить закрыть.)

$this->db->select('*'); 
$this->db->select($currentPaymentDateFoundInQuery1'. AS Payment_Date'); // add a column with Payment_Date 
$this->db->from('User'); 
$this->db->join('Earning', 'Earning.Userid=User.id'); 
$this->db->where('Earning >', 10); 
$this->db->where('Date >', $previousPaymentDateFromQuery2); 
$this->db->where('Date <=', $currentPaymentDateFoundInQuery1); 
$query = $this->db->get(); 

Это может быть не совсем то, что вы ищете, но это должно вам начать работу. Второй оператор select просто создает дополнительный столбец в результатах с текущей датой платежа.

Смежные вопросы