Создание страницы загрузки привязки, содержащей данные из указанной строки в БД - PullRequest
0 голосов
/ 03 июня 2010

Я пытаюсь изучить библиотеку воспламенителя кода и объектно-ориентированный PHP вообще и у меня есть вопрос.

Я дошел до создания страницы, которая загружает все строки из моей базы данных, и там я повторяю якорный тег, который является ссылкой на следующую структуру.

echo anchor("videos/video/$row->video_id", $row->video_title);

Итак, у меня есть класс Videos, который расширяет контроллер, в этом классе есть индекс и video, который вызывается правильно (когда вы нажимаете на заголовок видео, он отправляет вас, например, на videos / video / 5). 5 - основной ключ таблицы, с которой я работаю.

Так что в основном все, что я пытаюсь сделать, это передать эти 5 обратно контроллеру, а затем заставить определенную страницу видео выводить данные определенных строк из таблицы видео. Моя функция в моем контроллере для видео выглядит так:

function video()
{
    $data['main_content'] = 'video';
    $data['video_title'] = 'test';
    $this->load->view('includes/template', $data);      
}

Так что, по сути, test должен быть вместо test возвращаемым значением запроса, в котором говорится, что в таблице "videos" указано get, строка с video_id из "5" и значение $data['video_title'] равны значению video_title в базе данных ...

Если бы это уже выяснили, но не помогите, любая помощь будет признательна!

Ответы [ 3 ]

0 голосов
/ 04 июня 2010

Вы можете использовать класс URI или сделать следующее:

function video($video_id)
{
  $data['main_content'] = $this->videoprovider->get_video( $video_id );
  $data['video_title'] = 'test';
  $this->load->view('includes/template', $data);
} 

Другими словами, с помощью функций внутри классов, расширяющих Controller, вы можете добавлять параметры к этим функциям, и CI автоматически передает элементы URI для этих параметров.

function generic_function_in_controller($item1, $item2, ...)
{
  // would receive as: http://example.com/controller/generic_function_in_controller/item1/item2
}
0 голосов
/ 08 июня 2010

Не знаю, опоздал ли я, но, может быть, это решит твою проблему ... вставьте это в функцию video ()

data[$query] = $this->db->query("SELECT * FROM videos WHERE video_id = 5");

и затем в вашем файле video_view ...

if ($query->num_rows() > 0)
{
   $row = $query->row_array(); 

   echo $row['title'];
   echo $row['something'];
   echo $row['somethingElse'];
}

это хороший ресурс: http://codeigniter.com/user_guide/database/index.html

надеюсь, что это поможет ...

и, пожалуйста, кто-нибудь отредактирует вопрос, потому что его слишком сложно прочитать ...

0 голосов
/ 04 июня 2010

Вам нужно понять, как работает URI-класс

В основном:

$default_url_args = array('video');
$url_args = $this->uri->uri_to_assoc(3,$default_url_args);
$video_UID = $url_args['video'];

а потом что-то вроде

$the_video = $this->videos_model->get_video_by_UID($video_UID);
...