About

| Posted by Meng_Ying_Tsai

CodeIgniter 簡易留言板

注意事項
這個留言板沒有防止SQL Injection,純粹練習用。

0.製作資料表

開一個資料表,有comment_idcomment_authorcomment_messagecomment_datetime等欄位。
comment_id設成AI(auto increment),新增留言時會自動增加。
comment_datetime的Default設成CURRENT_TIMESTAMP,新增留言時自動填入時間。
大概像這樣:

Column Name Data Type PK NN UQ BIN UN ZF AI Default
comment_id INT() v v v
comment_author CHAR()
comment_message VARCHAR()
comment_datetime DATETIME CURRENT_TIMESTAMP

1.顯示所有留言

1.1 controller部分

controllers/Guestbook.php
public function index()
    {
           $q = $this->db->from("comment")->get();  //取出comment這個資料表的資料
           $data['comments'] = $q->result();
           $this->load->view('guestbook', $data);  //把$data代到view裡
    }

1.2 view部分
用foreach迴圈把資料顯示出來。(範例code是用bootstrap套版)

view/guestbook.php
<?php foreach ($comments as $c) { ?>
    <div class="panel panel-default">
        <div class="panel-heading"><?=$c->comment_author ?> <small><?=$c->comment_datetime ?> </small></div>
        <div class="panel-body">
        <?=$c->comment_message ?>
        </div>
    </div>
<?php } ?>

2. 新增留言

2.0 製作表單和新增鈕
2.0.1 製作表單
在view資料夾底下新增form.php,製作一個簡易的表單。
form加上method="POST"action="<?=base_url("/guestbook/new_act")?>">,等一會到guestbook.php新增一個叫new_act的function。

view/form.php
<form class="form-horizontal" method="POST" action="<?=base_url("/guestbook/new_act")?>">
    <div class="form-group">
        <label for="inputAuthor" class="col-sm-2 control-label">暱稱</label>
        <div class="col-md-8">
            <input name="author" type="author" class="form-control" id="inputAuthor" placeholder="您的暱稱">
        </div>
    </div>
    <form class="form-horizontal">
        <div class="form-group">
        <label for="inputMessage" class="col-sm-2 control-label">留言</label>
        <div class="col-md-8">
            <textarea name="message" class="form-control " rows="3"></textarea>
    </div>
    </div>
    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <button type="submit" class="btn btn-default">送出留言</button>
      </div>
    </div>
</form>

2.0.2 在guestbook.php中加入新增留言的按鈕

<a class="btn btn-default" href="<?=base_url("/guestbook/new_comment/")?>">新增留言</a>

2.1 controller部分
增加導向表單的function和新增留言的function

public function new_comment()  //導向表單
    {
           $this->load->view('form');
    }
        
public function new_act(){  //新增留言
    $auth = $this->input->post("author");
    $msg = $this->input->post("message");
    $data = [
        "comment_author" => $auth,
        "comment_message" => $msg
    ];
    $this->db->insert('comment', $data);  //新增進資料庫
    redirect("../guestbook");  //導向guestbook
}
| Posted by Meng_Ying_Tsai

CodeIgniter 小筆記

查詢

1.連接資料庫

1.1 到config>database.php 填入資料庫的帳號、密碼
1.2 到config>utoload.php 加入$autoload['libraries'] = array('database');

2.產生查詢結果

2.1 在controller裡建一個php檔
2.2 加入class Controller_name extends CI_Controller { //code here }Controller_name和檔案同名
2.3 加入一個function ex.public function index(){ //code here }
2.4 把資料抓出來
2.4.1 多筆資料

$q = $this->db->from("table_name")->get();
$data['chars'] = $q->result();
$this->load->view('view_name', $data);

2.4.2 單筆資料

class記得要代變數ex. public function char($id=0)

$q = $this->db->from("table_name")->where('id',$id)->get(); //'id'是key,$id是value
$res = $q->result();
if(empty($res)){  //檢查有沒有抓到資料
    show_404();
    return;
}
$data['char'] = $res[0];  //取陣列第一項
$this->load->view('charView', $data);

3. 到 view把東西echo出來

3.1 多筆資料
ex.

<ul>
    <?php foreach ($chars as $c) { ?>
    <li><?=$c->column_name ?></li>
    <?php } ?>
</ul>

3.2 單筆資料
直接<?=$c->column_name ?>即可


連結

1.更改連結相關的config

1.1 到config>config.php 改$config['base_url']的路徑
1.2 到config>autoload.php 加入$autoload['helper'] = array('url');

2.在view的地方設超連結

ex.

<a href="<?= base_url("/your_controller") ?>"

php中的字串以.連接,所以也可以

<a href="<?= base_url("/your_controller". $c->id) ?>"
| Posted by Meng_Ying_Tsai

Hello World

Hi, This a demo post of Logdown.

Logdown use Markdown as main syntax, you can find more example by reading this document on Wikipedia

Logdown also support drag & drop image uploading. The picture syntax is like this:

Bloging with code snippet:

inline code

Plain Code

puts "Hello World!"

Code with Language

puts "Hello World!"

Code with Title

hello_world.rb
puts "Hello World!"

MathJax Example

Mathjax

Inline Mathjax

The answser is .

Table Example

Tables Are Cool
col 1 Hello $1600
col 2 Hello $12
col 3 Hello $1