php 簡易 blog,PHP實現簡易blog的制作

最近,有時間看了點PHP的代碼。參考PHP100教程做了簡單的blog,這里面簡單的記錄一下。

首先是集成環境,這里選用的WAMP:http://www.wampserver.com/en/

首先通過,phpMyAdmin創建一張blog表。

93b20dd0784f15773757ef2805e6737f.png

純界面操作,過程比較簡單,需要注意的是id是主鍵,并且設置auto_increnent 選項,表示該字段為空時自增。其它字段就比較隨便了,注意類型和長度即可。

創建數據連接

在./wamp/www/blog目錄下創建conn.php文件。

@mysql_connect("127.0.0.1:3306","root","") or die("mysql數據庫連接失敗");

@mysql_select_db("test")or die("db連接失敗");

mysql_query("set names 'gbk'");

?>

mysql默認用戶名為root,密碼為空,這里創建的blog在test庫中,所以需要連接test庫。

添加blog

在./wamp/www/blog/目錄下創建add.php文件。

index

add blog


include("conn.php"); //引入連接數據庫

if (!empty($_POST['sub'])) {

$title = $_POST['title']; //獲取title表單內容

$con = $_POST['con']; //獲取contents表單內容

$sql= "insert into blog values(null,'0','$title',now(),'$con')";

mysql_query($sql);

echo "insert success!";

}

?>

title :

contents:

這段代碼分兩部分,上部分是PHP代碼,include (或 require)語句會獲取指定文件中存在的所有文本/代碼/標記,并復制到使用 include 語句的文件中。

然后,判斷表單中name='sub'的內容不為空的情況下,將獲取表單的內容,然后執行$sql 語句,null 表示id為空(自增),now()表示取當前日起,$title和$con取表單中用戶提交的內容。最后eche 插入成功的提示。

下半部分就是一段簡單的HTML代碼了,用于實現一個可以blog表單提交的功能。

創建blog的首頁

在./wamp/www/blog/目錄下創建index.php文件。

index

add blog


include("conn.php"); //引入連接數據庫

if (!empty($_GET['keys'])) {

$key = $_GET['keys'];

$w = " title like '%$key%'";

}else{

$w=1;

}

$sql ="select * from blog where $w order by id desc limit 5";

$query = mysql_query($sql);

while ($rs = mysql_fetch_array($query)) {

?>

title: <?php echo $rs['title']; ?>

| edit

| delete |

date: <?php echo $rs['data']; ?>

contents:<?php echo iconv_substr($rs['contents'],0,30,"gbk"); ?>...


};

?>

該頁面包含有的功能還是比較多的。

首先是一個搜索表單,通過if判斷搜索表單的內容是否為空,如果不為空,通過輸入關鍵字匹配文章的標題并顯示結果;如果為空查詢所有blog內容,并循環顯示每一篇文章的標題、日期、正文。點擊標題會鏈接到該篇blog的詳細頁面。每一篇文章提供“編輯”和“刪除”功能。

mysql_query()用于執行sql語句。mysql_fetch_arry()將返回的數據生成數組,這樣就可以像操作數組一樣,操作數據庫中的每一條數據了。

然后是正文的顯示,通過 iconv_substr() 函數提取正文前30個字符。

查看blog

在./wamp/www/blog/目錄下創建view.php文件。

index

add blog


include("conn.php"); //引入連接數據庫

if (!empty($_GET['id'])) {

$id = $_GET['id'];

$sql ="select * from blog where id='$id' ";

$query = mysql_query($sql);

$rs = mysql_fetch_array($query);

$sqlup = "update blog set hits=hits+1 where id='$id'";

mysql_query($sqlup);

}

?>

title: <?php echo $rs['title']; ?>

date: <?php echo $rs['data']; ?>

click number: <?php echo $rs['hits']; ?>


contents:<?php echo $rs['contents']; ?>

blog的正文實現比較簡單,通過get請求獲取blog的id,然后通過sql語句將該id對應的標題、日期和正文查詢出來并顯示。

并外一個小功能是顯示了一個簡單的計數器,每刷新頁面,點擊數加1。

編輯blog

在./wamp/www/blog/目錄下創建edit.php文件。

index

add blog


include("conn.php"); //引入連接數據庫

//獲取數據庫表數據

if (!empty($_GET['id'])) {

$edit = $_GET['id'];

$sql = "select * from blog where id='$edit'";

$query = mysql_query($sql);

$rs = mysql_fetch_array($query);

}

//更新數據庫表數據

if (!empty($_POST['sub'])) {

$title = $_POST['title']; //獲取title表單內容

$con = $_POST['con']; //獲取contents表單內容

$hid = $_POST['hid'];

$sql= "update blog set title='$title', contents='$con' where id='$hid' ";

mysql_query($sql);

echo "";

}

?>

title :

contents:

編輯blog的功能相對復雜一些。分兩部操作,第一步先將blog的標題和正文查詢出來,并顯示到輸入框。第二步將編輯好的內容再更新到數據庫中。

刪除blog

在./wamp/www/blog/目錄下創建del.php文件。

index

add blog


include("conn.php"); //引入連接數據庫

if (!empty($_GET['id'])) {

$del = $_GET['id']; //刪除blog

$sql= "delete from blog where id='$del' ";

mysql_query($sql);

echo "delete success!";

}

?>

最后是實現blog的刪除功能,通過id將該條blog的查詢出來并顯示。

因為所有頁面沒有使用前端樣式有美化,很丑就不貼圖了。功能還算完美。在此記錄,算做PHP學習的整理。

=======================================================

另外,雖然每個語言都有優缺點,這里還是忍不住要吐槽一下PHP的兩個不好之處。

1、符號不好寫, “$” 、“ ->” 、 “=>”。這些符號雖然并沒有增加代碼語法的理解難度。但敲起來具惡心。每次在打“$”符號的時候,都要眼看鍵盤按著shift鍵找4在哪兒。

2、php與html的混編在我看來也不是太優雅。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260238.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260238.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260238.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

jquery 事件對象屬性小結

jquery 事件對象屬性小結 使用事件自然少不了事件對象. 因為不同瀏覽器之間事件對象的獲取, 以及事件對象的屬性都有差異, 導致我們很難跨瀏覽器使用事件對象. jQuery中統一了事件對象, 當綁定事件處理函數時, 會將jQuery格式化后的事件對象作為唯一參數傳入: $("#testDiv…

ABP文檔 - Mvc 視圖

文檔目錄 本節內容&#xff1a; 簡介AbpWebViewPage 基類簡介 ABP通過nuget包Abp.Web.Mvc集成到Mvc視圖里&#xff0c;你可以像往常那樣創建常規的視圖。 AbpWebViewPage 基類 ABP也提供了AbpWebViewPage&#xff0c;它定義了一些有用的屬性和方法&#xff0c;如果你使用啟動模…

ThinkPad L440 FN鍵設置

剛入手了ThinkPad L440&#xff0c;用起來相當不錯&#xff0c;嘿嘿&#xff01; L440系統默認&#xff08;F1-F12&#xff09;鍵盤為系統默認功能鍵&#xff0c;主要控制音量、亮度、連接投影儀等。 因為編寫程序需要調試&#xff0c;經常用到F10&#xff0c;F11等鍵&#xff…

離散數學反對稱關系_《離散數學》學習記錄 - 集合論

來源&#xff1a;北京大學《離散數學》公開課地址&#xff1a;https://www.bilibili.com/video/av18896337/?p122.1 有序對和卡氏積有序對<a,b>&#xff1a;有順序&#xff0c;類似于數組&#xff0c;可以用集合定義。性質&#xff1a;有序對內元素對應相等卡氏積AB&…

收集的博客列表

前端&#xff1a; ———————————————————— 宅居 - 裸: http://otakustay.com/ 轉載于:https://www.cnblogs.com/ccdc/archive/2012/11/21/2780879.html

php創建表并插入數據,php數據庫操作-創建庫和表以及插入數據

以上我們正確連接到了mysql數據庫&#xff0c;本文將進一步創建數據庫&#xff0c;表&#xff0c;在表中填充數據。大家知道連接上數據庫才能進行操作&#xff0c;同樣的代碼搬過來/** 數據庫操作*(創建數據庫&#xff0c;表&#xff0c;插入數據&#xff0c;插入多條數據)** T…

C#配置及使用log4net

首先從官方網站http://logging.apache.org/log4net/下載最近版本的log4net組件。在程序中添加對log4net.dll的引用&#xff0c;就可以在程序中使用了。 下一步&#xff0c;編寫配置文件&#xff0c;內容如下 <?xml version"1.0" encoding"utf-8" ?>…

ORACLE EBS常用表及查詢語句(最終整理版)

建議去看參考二 參考一&#xff1a; call fnd_global.APPS_INITIALIZE(1318,50583,401) select fnd_profile.VALUE(ORG_ID) FROM DUAL select * from hr_operating_units hou where hou.organization_id204 --fn…

mysql觸發器 當記錄的指定字段發生變化時,更新表中的另外一個字段,或者更新另外一張關聯表中關聯記錄的字段...

2019獨角獸企業重金招聘Python工程師標準>>> 注意&#xff1a;語句中出現的old&#xff0c;new&#xff0c;now&#xff08;&#xff09;&#xff0c;都為數據庫自帶的關鍵字&#xff0c;此處不做解釋。 兩種情況&#xff1a; 第一種&#xff1a;一張表中&#xff0…

通用無線設備對碼軟件_珞光全新發布國產通用軟件無線電平臺 :USRP-LW N310!珞光品牌已實現國產替代...

USRP-LW N310是一種網絡的軟件定義無線電&#xff08;SDR&#xff09;&#xff0c;它提供了部署大規模的可靠的和容錯性的分布式無線系統。USRP-LW N310通過引入遠程執行任務的能力簡化了對SDR系統的控制和管理&#xff0c;如更新軟件&#xff0c;重新啟動&#xff0c;工廠復位…

手把手玩轉win8開發系列課程(2)

對win8開發&#xff0c;上一節我們對win8進行了簡單的介紹&#xff0c;這一節我們來瞧一瞧他的開發環境搭建。 前奏。 這里所講的win8開發&#xff0c;主要是指Windows8 app store 上開發&#xff0c;及metro ui或叫morden ui 程序的開發。傳統桌面應用程序&#xff0c;網站應…

python通過什么來區分不同語句塊_Python語言通過

【填空題】小塊【填空題】離開;出發(n.)【填空題】好人啊中的 “ 啊 ” 讀( )【填空題】“ 潔癖 ” 的正確讀音是( )【單選題】The article suggests that when a person ________ under unusual stress he should be especially careful to have a well-balanced diet. (CET20…

【Android面試】Android面試題集錦 (陸續更新)

【Android面試】Android面試題集錦 (陸續更新) 分類&#xff1a; 【雜七雜八】2011-05-11 17:58 2064人閱讀 評論(0) 收藏 舉報一些常見的Android面試基礎題做下總結&#xff0c;看看你能做出多少道? 1. Intent的幾種有關Activity啟動的方式有哪些&#xff0c;你了解每個含義嗎…

cordova-plugin-app-version插件使用

此插件用來獲取開發軟件的版本號&#xff01;首先安裝此插件&#xff1a; 命令行中輸入 cordova plugin add cordova-plugin-app-version然后刷新項目&#xff0c;就會在在項目plugins文件夾下看到cordova-plugin-app-version,如下圖所示接下來就是使用此插件的語句獲取版本號c…

14.cookie與自動登陸

場景 webdriver可以讀取并添加cookie。有時候我們需要驗證瀏覽器中是否存在某個cookie&#xff0c;因為基于真實的cookie的測試是無法通過白盒和集成測試完成的。 另外更加常見的一個場景是自動登陸。有很多系統的登陸信息都是保存在cookie里的&#xff0c;因此只要往cookie中添…

不同串口通信速率超時時間_串口知識詳解 串口功能及電路介紹

一、串口的概念串行接口簡稱串口&#xff0c;也稱串行通信接口或串行通訊接口(通常指COM接口)&#xff0c;是采用串行通信方式的擴展接口。串行接口(SerialInterface)是指數據一位一位地順序傳送&#xff0c;其特點是通信線路簡單&#xff0c;只要一對傳輸線就可以實現雙向通信…

matlab 求最大值函數,利用matlab, 二元函數求最大值

求二元函數z0.2323*x^2-0.2866^22*(-0.5406)*a0^21.0203*a0^2*x^2/((x^2y^2)^0.5*tanh(2*(x^2y^2)^0.5)-x^2*(0.5733-u0)^2)的最大值&#xff0c;變量x和y都是在0.2附近。求z的最大值&#xff0c;以及x,y的取值。先用diff命令求z關于x,y的偏導數得到q(1)和q(2)兩個方程&#xf…

代碼生成那點事

在微軟技術中浸淫6年多了&#xff0c;我就常想啊&#xff0c;有沒有一個工具&#xff0c;能讓開發簡單一點&#xff0c;哪怕就簡單一點點&#xff1f;&#xff01; 這還是去年的事情&#xff0c;手里的項目都成功上線了&#xff0c;我和james聊天&#xff0c;我說咱們的這幾個項…

python反爬蟲破解_python中繞過反爬蟲的方法總結

我們在登山的途中&#xff0c;有不同的路線可以到達終點。因為選擇的路線不同&#xff0c;上山的難度也有區別。就像最近幾天教大家獲取數據的時候&#xff0c;斷斷續續的講過header、地址ip等一些的方法。具體的爬取方法相信大家已經掌握住&#xff0c;本篇小編主要是給大家進…

vue上傳文件php,php文件上傳 – 前端開發,JQUERY特效,全棧開發,vue開發

文件上傳一般有下面2種方式&#xff1a;有兩種&#xff1a;1、標準input表單方式&#xff0c;典型的用$_FILES進行接收&#xff1b;2、以Base64的方式進行傳送&#xff0c;一般是AJAX異步上傳。第一種標準的input表單方式&#xff0c;適用于大文件進行上傳&#xff0c;同時支持…