1.MySQL數據庫編程的步驟
第一步:連接MySQL服務器
$link = mysql_connect($db_host,$db_user,$db_pwd);
返回值:連接成功返回資源標識符(轉成布爾值true),連接失敗返回false.
第二步:選擇當前數據庫
mysql_select_db($db_name,$link);
返回值:布爾值
第三步:設置返回數據的字符集
mysql_query(“set names utf8”);
第四步:執行SQL語句
增加:INSERT INTO table_name(title,author,addate) VALUES(‘新聞標題’,’admin’,’2014-06-11’)
刪除:DELETE FROM table_name WHERE id=100
修改:UPDATE table_name SET title=”新的標題”,author=”zhangsan” WHERE id=100
查詢:SELECT * FROM table_name WHERE id<100 ORDER BY id DESC LIMIT 0,10
$result = mysql_query($sql);
返回值:只有SELECT語句會返回資源標識符(結果集),其它的返回真、假值。
第五步:針對SELECT語句
$arr = mysql_fetch_row($result); //返回枚舉數組,每次只取一個行記錄
$arr = mysql_fetch_array($result); //返回混合數組
$arr = mysql_fetch_assoc($result); //返回關聯數組
2.新聞類別模塊
(1)新聞類型的數據表:007_class_news
id:新聞類別的id號
classname:類型名稱
borderby:排序字段
(2)增加一個新聞類別
先有表單,單擊“提交按鈕”提交表單;
表單數據發往PHP程序進行處理;
處理完後,將表單數據寫進數據庫。
007_class_news.php
(3)讀取所有的記錄
class_news_manage.php
關鍵代碼:SELECT * FROM 007_class_news ORDER BY orderby ASC,id DESC
如果記錄為空,則輸出“該模塊沒有記錄,請你先添加”
如果記錄不空,則輸出所有的類別。
(4)刪除一條記錄
class_news_del.php
關鍵的代碼:DELETE FROM 007_class_news WHERE id=100
獲取傳遞過來的id值,並進行判斷。
如果id不存在,則跳到錯誤頁面;
如果id存在,則執行刪除SQL語句,再跳到成功頁面
(5)修改一條記錄
class_news_edit.php
關鍵的代碼:UPDATE 007_class_news SET classname=’$classname’,orderby=$orderby WHERE id=100
先讀取要修改記錄內容,並寫入到表單中
進行修改,提交表單。
更新數據庫
3.新聞模塊
新聞類別表(007_class_news)和新聞表(007_news)的關係
007_news數據表的結構
cat:新聞的類別ID,對應於007_class_news中的ID值。
title:新聞的標題
author:新聞的發佈人
source:文章來源
keywords:這條新聞的關鍵字,主要用於網站優化;
descrition:新聞的簡介,主要用於網站優化;
orderby:新聞的排序,如果後面的某條新聞,想排到前面時間,可以把orderby的值改小一點;
content:新聞的內容,圖文混排。需要安裝FCKEditor在線編輯器,kindeditor是國內的;
hits:訪問量,單擊率
addate:新聞的發佈時間,獲取的是time()的值;
kindeditor在線編輯器
引入kindeditor在線編輯器,kindeditor是用純JS開發的,和Word很像。
Kindeditor在網上都可以隨時下載到。
Kindeditor文件夾的目錄:adminjseditor
Kindeditor的首頁文件:adminjskindeditor-min.js
/*********************************************************
<script charset="utf-8" src="js/editor/kindeditor-min.js"></script>
<script charset="utf-8" src="js/editor/lang/zh_CN.js"></script>
<script>
//加入在線編輯器
var editor;
KindEditor.ready(function(K) {
editor = K.create('textarea[name="content"]', {
allowFileManager : true
});
});
</script>
<textarea id="content" name="content" style="width:100%;height:300px;visibility:hidden;"></textarea>
****************************************************************
以上代碼實現,將<textarea>標記替換成KindEditor在線編輯器。
讀取新聞類型的數據
$sql = “SELECT * FROM {$db_prefix}class_news ORDER BY orderby ASC”;
<select name="cat">
<?php
//讀取新聞類別表的數據:007_class_news
$sql = "SELECT * FROM {$db_prefix}class_news ORDER BY orderby ASC";
$result = mysql_query($sql);
while($row=mysql_fetch_assoc($result))
{
echo "<option value='".$row["id"]."'>".$row["classname"]."</option>n";
}
?>
</select>
新聞分頁
分頁模塊:可以會涉及到以下幾個變量
pagesize:每頁顯示的數據;
page:當前頁,一般是通過地址欄傳遞過來的參數;http://localhost/admin/news_manage.php?page=3
records:符合條件的總記錄數,通過“SELECT * FROM table_name WHERE id<500”
pages:總頁數;總記錄數/每頁顯示的大小 $pages = ceil($records/$pagesize)
startrow:開始行號,每頁的開始行號都不一樣,計算公式:$startrow = ($page-1)*$pagesize
分頁的SQL語句:SELECT * FROM 007_news LIMIT $startrow,$pagesize
4.網站前臺新聞模塊
Index.php 網站前臺首頁,輸出前8條記錄
News.php 新聞列表頁
Newsdetail.php 新聞詳細內容頁
網站前臺應該是三層結構:網站首頁——模塊列表頁——詳經內容頁