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

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

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

Никак не могу понять как сделать запрос к бд.
Все данные из бд вывелись, но как мне из формы добавлять их в бд? я все перечитал, не могу понять, я овощ!!!
Вот вид формы
Код:
<br/>
<br/>
<form action ="" method="post">
    <select id="1" name="1">
        <option>ddd</option>
        <option>dsds</option>
    </select>
    <input value="" name="login" type="text" size="70">
    <input value="Добавить" type="submit">
   
   
</form>
<b/>
</a>

Вот такой код у главной странице
Код:
<h3>Это главная страница</h3>
<br />
 
<?php foreach($row as $maddurl): ?>
 
    <div style="padding:10px; margin-bottom:10px; border-bottom:#333 2px solid;">
        <strong><?php echo $maddurl['adres']; ?></strong><br />
        <p style="text-align:right; text-decoration:underline;">
    </div>
 
<?php endforeach; ?>

Ребят ну хоть как нибудь подскажите, хотя бы капельку,где и что нужно прописать,что создать и тд) помогите мне разобраться с этим программированием)

Вложения:
Безымянный.jpg
Безымянный.jpg [ 66.7 КБ | Просмотров: 6726 ]

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

После отправки формы данные попадают в POST - массив. Т.е. например, информация, введенная в это поле:
Код:
<input value="" name="login" type="text" size="70">

попадет в $_POST['login'].
Далее пишем что-то вроде:
Код:
$query = DB::query(Database::INSERT, 'INSERT INTO table (login) VALUES (:login)')  
$query->param(':login', $_POST['login']);


Это в упрощенном виде и в свете того, что мы проходили. Можно также использовать query builder, можно orm. Это я расскажу потом. Но и вышенаписанный пример будет работать.
И перечитайте http://kohanaframework.su/database/query_types

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

admin писал(а):
После отправки формы данные попадают в POST - массив. Т.е. например, информация, введенная в это поле:
Код:
<input value="" name="login" type="text" size="70">

попадет в $_POST['login'].
Далее пишем что-то вроде:
Код:
$query = DB::query(Database::INSERT, 'INSERT INTO table (login) VALUES (:login)'); 
$query->param(':login', $_POST['login']);
$query->execute();


Это в упрощенном виде и в свете того, что мы проходили. Можно также использовать query builder, можно orm. Это я расскажу потом. Но и вышенаписанный пример будет работать.
И перечитайте http://kohanaframework.su/database/query_types

Автор:  Migel [ 08 апр 2012, 22:35 ]
Заголовок сообщения:  Re: снова, бд,запрос

AzEXx -а ты вообще в пхп работал с базами данных ? а то кажется что нет.

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

Migel писал(а):
AzEXx -а ты вообще в пхп работал с базами данных ? а то кажется что нет.

верно,я читал,смотрел работу бд с php, но практики не было,решил по практиковаться на kohane. хренова получается)))но это даже чем то хорошо

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

Работа с базой в Кохане вам покажется даже проще :)
Единственное - SQL запросы надо знать на начальном уровне все равно. Ну там условия, лимиты, сортировку, объединения таблиц (желательно)

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

Я тоже так думаю, ведь kohana служит для упрощение задач)
:D но я нифига все равно невникну(((((((
Получается,что вид формы, будет так выглядеть?
Код:
<br/>
<br/>
<form action = "" method="post">
    <select id="1" name="1">
        <option>ddd</option>
        <option>dsds</option>
    </select>
    <input value="" name="login" type="text" size="70">
     <?
    $query = DB::query(Database::INSERT, 'INSERT INTO table (login) VALUES (:login)');
    $query->param(':login', $_POST['login']);
    $query->execute();
    ?>
    <input value="Добавить" type="submit">
</form>
<b/>

Я щас оторву себе голову, жесть.
А можно ли, так записать:
Код:
$query = "SELECT * FROM adres";

ну и че нить еще ниже ?

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

Нет. Ну вообще так писать конечно можно (только надо условие вставить на отправку пост-массива, иначе инсерт будет происходить каждый раз при открытии страницы..без отправки), но так писать не нужно, т.к. это нарушает принцип MVC.
Код формы остается тот же.
В контроллере, который отвечает за эту страницу, пишем проверку на наличие отправки формы. Если форма была отправлена, получаем данные из пост-массива и передаем их в модель (а можем и в модели их сразу использовать, так как пост массив-это суперглобальный массив). В модели осуществляем инсерт.
Вообще следующие уроки по базам данных как раз будут реализовывать фактически 100% копию того, что вы сейчас делаете. Я буду разбирать query builder и в качестве примера реализую добавление комментариев пользователей к статьям.

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

admin писал(а):
Нет. Ну вообще так писать конечно можно (только надо условие вставить на отправку пост-массива, иначе инсерт будет происходить каждый раз при открытии страницы..без отправки), но так писать не нужно, т.к. это нарушает принцип MVC.
Код формы остается тот же.
В контроллере, который отвечает за эту страницу, пишем проверку на наличие отправки формы. Если форма была отправлена, получаем данные из пост-массива и передаем их в модель (а можем и в модели их сразу использовать, так как пост массив-это суперглобальный массив). В модели осуществляем инсерт.
Вообще следующие уроки по базам данных как раз будут реализовывать фактически 100% копию того, что вы сейчас делаете. Я буду разбирать query builder и в качестве примера реализую добавление комментариев пользователей к статьям.

Может лучше мне дождаться следующего урока?а то я так убью своим тупизмом

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

Блин, ну что не так то происходит? нифига не срабатывает кнопка
Вид:
Код:
<br/>
<br/>
<form action = "" method="post">
    <input value="" name="inputsite" type="text" size="70">   
    <input value="Добавить" type="submit" name="submit">
   
   
</form>
<b/>
</a>
       

контроллер:
Код:
<?php defined('SYSPATH') or die('No direct script access.');
 
class Controller_Maddurls extends Controller_Common {
 
    public function action_index()
    {
         
        $content = View::factory('addurl')
         ->bind('krut', $krut);
        $this->template->content = $content;
       
        if(isset($_POST["inputsite"])){
           $answer = $_POST[""];
           if($answer == 1){
               echo "Отправлено";
           }
            else{
                echo "Нет нет, я не отправил";
            }
        $krut = Model::factory('Maddurl')->select();
               
           }
           
           
   
    }
}

Модель:
Код:
public function select()
    {
           DB::insert('krut', array('adres'))->values(array('site'));
               
    }

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