Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

снова, бд,запрос
http://forum.kohanaframework.su/viewtopic.php?f=33&t=121
Страница 3 из 5

Автор:  eBasher [ 20 апр 2012, 19:56 ]
Заголовок сообщения:  Re: снова, бд,запрос

Напиши перед условием
Код:
print_r($_POST);

да увидишь, что приходит при отправке формы

Автор:  AzEXx [ 20 апр 2012, 23:00 ]
Заголовок сообщения:  Re: снова, бд,запрос

eBasher писал(а):
Напиши перед условием
Код:
print_r($_POST);

да увидишь, что приходит при отправке формы

Добавил, но ничего не происходило.
После, решил добавить в другой контроллер) вот его исходник:
Код:
    // Главная страница
    public function action_index()
    {
        $content = View::factory('/pages/show')
                ->bind('krut', $krut);
        $krut = Model::factory('Maddurl')->get_all();
        $addurl = View::factory('/addurl');   
        $this->template->content = $content;
        $this->template->addurl = $addurl;
        $recomsite = View::factory('/recomsite');
        $this->template->recomsite = $recomsite;
       
       
    }   

И когда добавил в левый контроллер выводилось:
Код:
Array ( [inputsite] => asdfsagfadf [submit] => Добавить ) Отправлено

Автор:  AzEXx [ 21 апр 2012, 00:32 ]
Заголовок сообщения:  Re: снова, бд,запрос

Вообщем слил все в дочерьний контроллер, кошмар там с кодом, но теперь там выводятся надписи:Добавил, нет нет не добавил. В БД не добавляется,теперь ошибка в самом коде INSERT.
Спасибо Администратору ресурса,за новый мануал, вовремя))
Код:
$query = DB::insert('users', array('login', 'password'))
            ->values(array($login, $password));



users - это таблица, а остальные значение? (login,password) ребят туплю просто ужас,но помогите разобраться, перечитать, та перечитаю,но когда тыкаю пальцем или помогают в чем то,больше вызывает стремление изучать это все) больше заинтересованность вызывает, понимаешь что не одинок)))
Код:
$query = DB::insert('users', array('login', 'password'))
            ->values(array($login, $password));

Я добавил в модель такой код.
Код:
$query = DB::insert('krut', array('adres'))
            ->values(array($adres)); 

netbeans показывает что $query - не используется в своем обьеме(

Но если я использую query bilder, то такая вещь уже будет совершенно выглядить по другому? это же обычный sql запрос,а у нас та билдер, так как её изменить?
Код:
$addcontent = View::factory('addurl')
         ->bind('krut', $krut);

Автор:  admin [ 21 апр 2012, 16:34 ]
Заголовок сообщения:  Re: снова, бд,запрос

Надеюсь execute() в конце писали ?

Автор:  AzEXx [ 21 апр 2012, 17:37 ]
Заголовок сообщения:  Re: снова, бд,запрос

Нет, но код теперь так выглядит и все равно не работает((((((

Код:
  public function select()
    {
           DB::insert('krut', array('adres'))->values(array('adres'))
                ->execute();
    }

Автор:  admin [ 21 апр 2012, 18:17 ]
Заголовок сообщения:  Re: снова, бд,запрос

Метод вообще вызывается ? Как ? И почему он называется select, когда там insert.
Вообщем нужен полностью код контроллера и код модели, как оно выглядит сейчас.

Автор:  AzEXx [ 21 апр 2012, 18:40 ]
Заголовок сообщения:  Re: снова, бд,запрос

admin писал(а):
Метод вообще вызывается ? Как ? И почему он называется select, когда там insert.
Вообщем нужен полностью код контроллера и код модели, как оно выглядит сейчас.

Я думал название функции особо не имеет значение, вот полностью код, только там смесь.
Модель:
Код:
<?php defined('SYSPATH') or die('No direct script access.');
 
class Model_Maddurl extends Model
{
    protected $_tablekrut = 'krut';
 
    /**
     * Get all articles
     * @return array
     */
    public function get_all()
    {
        $sql = "SELECT * FROM ". $this->_tablekrut;
 
        return DB::query(Database::SELECT, $sql)
                   ->execute();
    }
   
    public function select()
    {
           DB::insert('krut', array('adres'))->values(array('adres'))
                ->execute();
    }
}


Контроллер
Код:
<?php defined('SYSPATH') or die('No direct script access.');
 
class Controller_Page extends Controller_Common {
 
    // Главная страница
    public function action_index()
    {
        $content = View::factory('/pages/show')
                ->bind('krut', $krut);
        $krut = Model::factory('Maddurl')->get_all();
        $addurl = View::factory('/addurl');   
        $this->template->content = $content;
        $this->template->addurl = $addurl;
        $recomsite = View::factory('/recomsite');
        $this->template->recomsite = $recomsite;
            //Добавление адреса  ((вот тут наша поле задействовано)
        $addcontent = View::factory('addurl')
         ->bind('krut', $krut);
        $this->template->addcontent = $addcontent;
       
        print_r($_POST);
        if($_POST)
{
 
// Используем хелпер Arr, зря учили чтоли :)
    $answer = Arr::get($_POST, 'inputsite');

    // Тут проверка, допустим юзер должен ввести хоть один символ
    if(trim($answer) != '')
    {
        // Тут видимо вставка этой записи в базу. Передаем в модель эту запись, производим INSERT
        echo "Отправлено";
    }
    else
   {
        echo "Нет нет, я не отправил. Введите хоть чего-нибудь";
    }
}
           
    }
       
       
     
 
    // Страница о сайте
    public function action_about()
    {
        $content = View::factory('/pages/about');
        $this->template->content = $content;
    }
 
    // Страница контактов   
    public function action_contacts()
    {
        $content = View::factory('/pages/contacts');
        $this->template->content = $content;
    }   
 
} // End Page

Автор:  admin [ 21 апр 2012, 18:49 ]
Заголовок сообщения:  Re: снова, бд,запрос

Цитата:
Я думал название функции особо не имеет значение


Не имеет. Но странно, когда метод, в котором присходит вставка записи называется select(выбрать). Сами же потом запутаетесь.
Посмотрел код. А где вызов этого метода ?
Вместо
Код:
// Тут видимо вставка этой записи в базу. Передаем в модель эту запись, производим INSERT

пишем
Код:
$krut = Model::factory('Maddurl')->insert($answer);

А в модели
Код:
    public function insert($adress)
    {
           DB::insert($this->_tablekrut, array('adres'))->values(array($adress))
                ->execute();
    }


Метод select() вытираем.

Автор:  AzEXx [ 21 апр 2012, 20:01 ]
Заголовок сообщения:  Re: снова, бд,запрос

admin

Прибольшущая вам спасибо))) Только почему то после отправки, происходит ошибка, ошибка в виде. По идеи этот записи из БД
Код:
<h3>Это главная страница</h3>
<br />
<?php foreach($krut as $maddurls): ?>
 
    <div style="padding:10px; margin-bottom:10px; border-bottom:#333 2px solid;">
        <strong><?php echo $maddurls['adres']; ?></strong><br />
        <p style="text-align:right; text-decoration:underline;">
           
    </div>

<?php endforeach; ?>



Код:
<?php foreach($krut as $maddurls): ?>
- эта строка является инициатор ошибки. beans говорит, то что $krut - не инициализирована.

Автор:  mamahtehok [ 21 апр 2012, 21:36 ]
Заголовок сообщения:  Re: снова, бд,запрос

Все потому, что Вы не определяете эту переменную, а только объявляете.

Страница 3 из 5 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/