Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 28 мар 2024, 23:32

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Подключение файлов.Рейтинг
СообщениеДобавлено: 08 май 2012, 15:17 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Не трепите. Наоборот :) Без вопросов и форума не будет.
Если народ заходит и видит, что последний пост был год назад, то даже не регистрируется :)

Вам что нужно сделать.
1) Все запросы засунуть в модель и переписать их для Коханы, сделав для них методы (я выше дал образец).

Т.е. суем в методы запросы
Код:
"SELECT ip, id_post FROM rating_post_ip WHERE id_post = '".$id."' AND ip = '".$ip."'"
"SELECT id_post, up, down FROM rating_post WHERE id_post = '".$id."'"
"INSERT INTO `rating_post` VALUES ( '".$id."',  '0',  '0');"

итд. Естественно переписав их в духе
Код:
$query = DB::query(Database::SELECT, $sql);
.....

2) В контроллере в местах, где были эти запросы делаем вызов этих методов, передавая в метод нужные параметры ($id, $ip итд). Получаем массив.

Там единственное структура массива может быть чуть другой.
Кажется не
Код:
$nowPlus = $row['up']; 

а
Код:
$nowPlus = $row[0]['up']; 

В любом случае можно посмотреть, какой массив возвращается.

3) Весь вывод засунуть в файлы вида. В контроллере не должно быть вывода.

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подключение файлов.Рейтинг
СообщениеДобавлено: 10 май 2012, 02:14 
Не в сети
Бывалый

Зарегистрирован: 27 мар 2012, 14:08
Сообщения: 62
admin писал(а):
Не трепите. Наоборот :) Без вопросов и форума не будет.
Если народ заходит и видит, что последний пост был год назад, то даже не регистрируется :)

Вам что нужно сделать.
1) Все запросы засунуть в модель и переписать их для Коханы, сделав для них методы (я выше дал образец).

Т.е. суем в методы запросы
Код:
"SELECT ip, id_post FROM rating_post_ip WHERE id_post = '".$id."' AND ip = '".$ip."'"
"SELECT id_post, up, down FROM rating_post WHERE id_post = '".$id."'"
"INSERT INTO `rating_post` VALUES ( '".$id."',  '0',  '0');"

итд. Естественно переписав их в духе
Код:
$query = DB::query(Database::SELECT, $sql);
.....


Да,я очень рад,что и потому есть такое чудо как форум) Если бы не ваши ресурсы я бы стоял на месте,а чет официальным форумом не так хочется пользоваться,еще не дорос)
Я решил разобрать все по порядку:
Я работаю над этим запросам:
Код:
"SELECT ip, id_post FROM rating_post_ip WHERE id_post = '".$id."' AND ip = '".$ip."'"

Для модели я создал новую фунцию:Так у меня она выглядит и как я сделал запрос по "кохановски"же?
Код:
   public function myrating($ip, $id_post, $rating_post)
    {
        $sql = "SELECT ip,id_post FROM `rating_post_ip` WHERE id_post = :id_post AND ip =:ip";
        $query = DB::query(Database::SELECT, $sql)
                ->param(':ip',$ip)
                ->param(':id_post',$id_post)
               
                ->execute('updatabase');
        return $query->as_array();
    }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подключение файлов.Рейтинг
СообщениеДобавлено: 10 май 2012, 03:02 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Совершенно верно. Только переменная $rating_post непонятно для чего. В метод передается, а не используется )

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подключение файлов.Рейтинг
СообщениеДобавлено: 10 май 2012, 10:08 
Не в сети
Бывалый

Зарегистрирован: 27 мар 2012, 14:08
Сообщения: 62
admin писал(а):
Совершенно верно. Только переменная $rating_post непонятно для чего. В метод передается, а не используется )

О,отлично я начал немножко понимать.
Код:
"SELECT id_post, up, down FROM rating_post WHERE id_post = '".$id."'"
"INSERT INTO `rating_post` VALUES ( '".$id."',  '0',  '0');"

А теперь с этими запросами,для них записывать новые функции в моделе?просто файл Rateaction, имеет одну общую функцию - public function myrating();
А как с другими запросами быть?
Или все возможно записать в одну функцию? как лучше?
Вот два моих исходника, base

Код:
<?php defined('SYSPATH') or die('No direct script access.');
 
class Model_Base extends Model{

    protected $_tableRating = 'rating_post';
   
     public function golos()
    {

        $sql = "SELECT * FROM ".  $_tableRating;
 
        return DB::query(Database::SELECT, $sql)
                   ->execute('updatabase')->as_array();
    }

    public function callrating ($idpost, $typethumb = '', $liked = '')
    {
       $sql = "SELECT up, down FROM `rating_post` WHERE id_post = :id_post";
       $query = DB::query(Database::SELECT, $sql)
                ->param(':id_post', (int)$idpost)
                ->execute('updatabase');
        return $query->as_array();
    }
   public function myrating($ip, $id_post)
    {
        $sql = "SELECT ip,id_post FROM `rating_post_ip` WHERE id_post = :id_post AND ip =:ip";
        $query = DB::query(Database::SELECT, $sql)
                ->param(':ip',$ip)
                ->param(':id_post',$id_post)
               
                ->execute('updatabase');
        return $query->as_array();
    }
}



Вот кусок Rateaction

Код:
<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Rateaction extends Controller{
   
   
    public function myrating()
               {
   $id = (int)$_POST['idpost'];
$action = $_POST['action'];
$ip = mysql_escape_string($_SERVER['REMOTE_ADDR']);

$result = mysql_query("SELECT ip, id_post FROM rating_post_ip WHERE id_post = '".$id."' AND ip = '".$ip."'");
$count = mysql_num_rows($result);

if ($count == 0) {
   $result = mysql_query("SELECT id_post, up, down FROM rating_post WHERE id_post = '".$id."'");
   $row = mysql_fetch_array($result);
   $nowPlus = $row['up']; $nowMinus = $row['down'];
   
   if ($row['id_post']=='') {
      mysql_query("INSERT INTO `rating_post` VALUES ( '".$id."',  '0',  '0');");
      $nowPlus = 0; $nowMinus = 0;         
   }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подключение файлов.Рейтинг
СообщениеДобавлено: 10 май 2012, 15:16 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Не понял :)
В смысле, не понял в чем проблема.

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подключение файлов.Рейтинг
СообщениеДобавлено: 10 май 2012, 19:14 
Не в сети
Бывалый

Зарегистрирован: 27 мар 2012, 14:08
Сообщения: 62
admin писал(а):
Не понял :)
В смысле, не понял в чем проблема.

Вообщем,у нас есть запросы:
Код:
"SELECT id_post, up, down FROM rating_post WHERE id_post = '".$id."'"
"INSERT INTO `rating_post` VALUES ( '".$id."',  '0',  '0');"

И в моделе для каждого запрос каждый раз новую функцию создавать?И описывать её процес?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подключение файлов.Рейтинг
СообщениеДобавлено: 10 май 2012, 19:56 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Здесь да. Это же разные запросы.

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подключение файлов.Рейтинг
СообщениеДобавлено: 10 май 2012, 21:00 
Не в сети
Бывалый

Зарегистрирован: 27 мар 2012, 14:08
Сообщения: 62
admin писал(а):
Здесь да. Это же разные запросы.

Длинный файл получается.
А вот если в файле моя функция называется:
Код:
public function myrating()
               {


Это как то влияет на модель ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подключение файлов.Рейтинг
СообщениеДобавлено: 13 май 2012, 15:53 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
Нет.

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Подключение файлов.Рейтинг
СообщениеДобавлено: 14 май 2012, 01:58 
Не в сети
Бывалый

Зарегистрирован: 27 мар 2012, 14:08
Сообщения: 62
Не могу понять с забросами INSERT,UPDATE
Помогите разобраться,вот сейчас у меня такой кошмар
Код:
 public function grom( '$id',  '0',  '0'){
        $sql = "INSERT INTO `rating_post VALUES ('$id', '0','0')";
    }

IDE показывает что ошибка,так и будет) ведь код чудной...
Помогите хотя бы примером,как оформить код UPDATE,INSERT
Читал эт - http://kohanaframework.su/database/query_types
Не помогло.Пожалуйста,помогите,хоть покажите пример,а я там уже сам...

Код:
   mysql_query("INSERT INTO `rating_post` VALUES ( '".$id."',  '0',  '0');");
      $nowPlus = 0; $nowMinus = 0;         
   }

   if ($action == 'plus') {
      $nowPlus = $nowPlus + 1;
      $upR = mysql_query("UPDATE rating_post SET up = up+1 WHERE id_post = '".$id."'");
   } else {
      $nowMinus = $nowMinus + 1;
      $upR = mysql_query("UPDATE rating_post SET down = down+1 WHERE id_post = '".$id."'");
   }
   
   mysql_query("INSERT INTO `rating_post_ip` VALUES ( '".$ip."', '".$id."' );");


Сейчас я над этим работаю запросом.
Код:
[b]"INSERT INTO `rating_post` VALUES ( '".$id."',  '0',  '0');"[/b]


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group