제가 예전에 공부하면서 만든 게시판을 코드이그나이트로 다시 만들어 보고 있습니다.
현재 글쓰기, 리스트 를 만들었는데 글읽기에서 막혀서 몇칠째 매뉴얼만 째려 보고 있습니다.
또한 지금 제가 작업하는게 제대로 하는것인지도 확신이 없네요.. 여러가지 지적 부탁해요
아래 소스의 파란글로 제가 표시한 부분이 잘못된것 같은데 어떻게 해야 할까요?
공부하는 학생이니 수고스럽지만 도움 부탁드립니다.
controllers/board.php
<?
class Board extends CI_Controller{
function Board(){
parent::__construct();
$this->load->model('board_model');
$this->load->helper('url');
$this->load->helper('form');
}
function index(){
//list
$data['result'] = $this->board_model->select();
$data['title']='게시판 리스트';
$this->load->view('list_view',$data);
}
//write_form
function write_form(){
$data['title']='글쓰기';
$this->load->view('write_form_view',$data);
}
//insert
function write(){
$this->board_model->write();
redirect('../board/');
}
//read
function read(){
$this->board_model->read();
$data['title']='글읽기';
$this->load->view('read_view',$data);
}
}
?>
models/board_model.php
<?php
class board_model extends CI_Model {
// 모델 생성자 호출
function board_model(){
parent::__construct();
}
//select->리스트
function select(){
$query = $this->db->get('board');
if ($query->num_rows() > 0)
{
return $query->result();
}else{
show_error('Database is empty!');
}
}
//select->글읽기
function read(){
$query = $this->db->query('SELECT * FROM board LIMIT 1');
$row = $query->row();
}
//insert
function write(){
$this->db->insert('board',$_POST);
}
}
?>
views/list_view.php
<html>
<head>
<title> <?=$title?> </title>
</head>
<body>
<table border=1 width=100%>
<tr bgclor=#336699>
<td align=center>번호</font>
<td align=center>제목</font>
<td align=center>글쓴이</font>
<td align=center>날짜</font>
<td align=center>조회수</font>
<? foreach($result as $row){ ?>
<tr>
<td><?=$row->num?>
<td><a href=board/read/><?=$row->subject?></a>
<td><?=$row->name?>
<td><?=$row->wdate?>
<td><?=$row->view?>
<? } ?>
<tr>
<td align=center colspan=5><?=anchor('../board/write_form/','글쓰기');?>
</body>
</html>
views/read_view.php
<html>
<head>
<title> <?=$title?> </title>
</head>
<body>
<!--
<?
$query = $this->db->query('SELECT * FROM board');
if ($query->num_rows() > 0){
$row = $query->row();
}
?>
-->
<table border=1 width=100%>
<tr>
<td>제목
<td colspan=3><?=$row->subject?>
<tr>
<td>이름
<td><?=$row->name?>
<td>E-mail
<td><?=$row->email?>
<tr>
<td>날짜
<td><?=$row->wdate?>
<td>조회수
<td><?=$row->view?>
<tr>
<td>내용
<td colspan=3><textarea name="content" rows="10" cols="100"><?=$row->content?></textarea>
<tr>
<td colspan=4>
수정 | 삭제 | 이전
</table>
</center>
</body>
</html>
웅파//
아래와 같이 웅파님 말씀대로 나름대로 수정해 봤습니다.
일단 제가 원하는데로 해당 게시물을 읽어 오고 있습니다. 짝짝짝!!
뒤에 따라오시는 분들을 위해서 소스를 올립니다
웅파님 감사합니다.
2일정도 밤샘 했던것 같네요
list_view.php
<a href=board/read/num/<?=$row->num?>><?=$row->subject?></a>
controllers/board.php
function read()
{
$num = $this->seg_value('num');
$this->db->select("*");
$this->db->where('num', $num);
$query = $this->db->get('board');
$row = $query->row_array();
$data['title']='글읽기';
$data['num'] = $num;
$data['name'] = $row['name'];
$data['subject'] = $row['subject'];
$data['content'] = $row['content'];
$data['view'] = $row['view'];
$data['wdate'] = $row['wdate'];
// 카운터
$data2 = array(
'view' => $row['view']+1
);
$this->db->where('num', $this->seg_value('num'));
$this->db->update('board', $data2);
$this->load->view('read_view',$data);
}
/*
//read
function read(){
$this->board_model->read();
$data['title']='글읽기';
$this->load->view('read_view',$data);
}
*/
/**
* 세그먼트값 찾기 (id/test 일때 id=test)
*/
function seg_value($key,$segment=NULL)
{
if($segment == NULL) {
$segment = $this->uri->segment_array();
}
$this->seg_exp = array_values($segment);
$arr_key = array_keys($this->seg_exp, $key);
if($arr_key)
{
$arr_val = $arr_key[0] + 1;
} else {
$arr_val = 200;
}
if(count($this->seg_exp) > $arr_val)
{
return $this->seg_exp[$arr_val];
}
}
/**
* 세그먼트 위치값 (id/test 일때 test의 세그먼트 위치값)
*/
function seg_index($key,$segment=NULL)
{
if($segment == NULL) {
$segment = $this->uri->segment_array();
}
$this->seg_exp = array_values($segment);
$arr_key = array_keys($this->seg_exp, $key);
$tot =count($arr_key);
if($tot > 0) {
$arr_val = $arr_key[0] + 2;
return $arr_val;
} else {
return "";
}
}
views/read_view.php
<html>
<head>
<title> <?=$title?> </title>
</head>
<body>
<table border=1 width=100%>
<tr>
<td>제목
<td colspan=3><?=@$subject?>
<tr>
<td>이름
<td><?=@$name?>
<td>E-mail
<td><?=@$email?>
<tr>
<td>날짜
<td><?=$wdate?>
<td>조회수
<td><?=$view?>
<tr>
<td>내용
<td colspan=3><textarea name="content" rows="10" cols="100"><?=$content?></textarea>
<tr>
<td colspan=4>
수정 | 삭제 | 이전
</table>
</center>
</body>
</html>
http://codeigniter-kr.org/tip/view/303/page/1 요기에 답이 있는것 같군요
하지만 제 실력에 봐도 잘 이해가 가지 않네요..
열공!!!!