php和資料庫結合的一個簡單的web實例 程式碼分析 (php初學者)

WBOY
發布: 2016-08-08 09:29:09
原創
982 人瀏覽過

這是一個基本的教學。沒有怪異的程式碼,只是一些基礎。現在有大量的教學是基於UNIX機器的,這個教學將集中在基於Windows平台上。

然而,除了安裝部分,有或多或少的針對於Windows的說明外,其它部分對所有的平台都是一樣的。順便說一下,關於安裝部分,請看本站的安裝指南。在這個教學中,我們將一步一步建立一個小型的網站,使用了PHP和MySQL的下面特性:
  1. 檢視資料庫;
  2. 編輯資料庫的記錄;
  3. 修改資料庫的記錄;
  4. 刪除資料庫的記錄。
  我們將同時學習MySQL和PHP,一起去感覺它們。本文直接從這裡學,如果不會安裝設定Apache+PHP+Mysql請看網頁教學網相關文章吧!
  先運行web伺服器(已增加PHP擴充);運行MySQL。
 建立和操縱一個MySQL資料庫:
  首先我們需要建立要使用的資料庫和表格。資料庫起名為"example",表名為"tbl",有以下欄位:識別號,名,姓和資訊。要透過mysql終端機完成建置庫和定義表的工作,只要雙擊或執行c:mysqlbinmysql.exe。
  如果要看在MySQL中已經定義了哪些表,可以使用(注意mysql>是終端提示符):
  Mysql> show databases;
  這個指令可能顯示如下資訊:
 ----- -----+
  | Database |
  +----------+
  | mysql |
  | test |
  +----------+
 | test |
  +----------+
 s 2 0.01 sec)
  為了定義一個新的資料庫(example),鍵入:
  Mysql> create database example;
  你將會看到一個回答,如: 發,我們現在有了一個新資料庫了。現在我們可以在庫中建立一個新表,但首先我們需要先選取新的資料庫:
  Mysql> use example;
  回答應該是:
  Database changed
  現在我們可以建號 用戶姓-最大長度為50的字串
  自由資訊- 最大長度為100的字串
  在MySQL提示符下鍵入下面的命令來建立表格:
  MySQL> create table tbl (idx integer(3var), NameUser(3varchar(3var) , LastName varchar(50), FreeText varchar(100));
  回答應該是:
  Query OK, 0 rows affected (0.01 sec)
  好,讓我們看一下從MySQL提示符下看表是什麼樣子的,
  我們將得到下面的結果:
  +----------+--------------+------+-----+- --------+-------+
  | Field | Type | Null | Key | Default | Extra |
  +----------+------ --------+------+-----+---------+-------+
  | idx | int(3) | YES | | NULL | |
  | UserName | varchar(30) | YES | | NULL | |
  | LastName | varchar(50) | YES | | NULL | |
  ULL| Free |Text |
  +----------+--------------+------+-----+--------- +-------+
  4 rows in set (0.00 sec)
  在這裡,我們可以看到剛建立的表格"tbl"的內容。
  現在讓我們來看看表中有什麼內容。鍵入下面的指令:
  MySQL> select * from tbl;
  這個指令是用來顯示表格"tbl"中的所有資料的。輸出可能是:
  Empty set (0.07 sec)之所以得到這個結果,是因為我們還沒有在表中插入任何資料。讓我們在表中插入一些數據,鍵入:
  MySQL> insert into tbl values (1,'Rafi','Ton','Just a test');
  Query OK, 1 row affected (0.04 sec )
  如上所見,我們插入到表中的值是按照前面我們定義表的順序,因為使用的是缺省的順序。我們可以設定資料的順序,語法如下:
  MySQL> insert into tbl (idx,UserName,LastName,FreeText) values (1,'Rafi','Ton','Just a test');
  好,現在我們可以再看一下表中的內容:
  MySQL> select * from tbl;
  這次的結果是:
  +------+-------- --+----------+-------------+
  | idx | UserName | LastName | FreeText |
  +------+--- -------+----------+-------------+
  | 1 | Rafi | Ton | Just a test |
  +--- ---+----------+----------+-------------+
  1 row in set (0.00 sec)
現在我們可以看到表格的結構和每個單元格的內容。
  現在我們想要刪除資料。為了實現我們應該鍵入:
  MySQL> delete from tbl where idx=1 limit 1; Query OK, 1 row affected (0.00 sec)
  好,給一些解釋。我們正在告訴MySQL從"tbl"表中刪除記錄,刪除那些idx欄位值為1的記錄,並且只限制刪除一筆記錄。如果我們不限制刪除記錄數為1,那麼所有idx為1的記錄都會被刪除(在這個例子中我們只有一條記錄,但是雖然如此,我只是想讓這一點更加清楚)。
  不幸的是,我們又一次得到了一個空表,所以讓我們再輸進去:
  MySQL> insert into tbl values (1,'Rafi','Ton','Just a test');
  Query OK, 1 row affected (0.04 sec)
  另一件可以做的事是,修改指定欄位的內容,使用"update"指令:
  SQL>update tbl set Userdate tbl set' ;
  Query OK, 1 row affected (0.01 sec)
  Rows matched: 1 Changed: 1 Warnings: 0
  這個指令將搜尋所有Usered: 1 Warnings: 0
  這個指令將搜尋所有Usered: 1 Warnings: 0
  這個指令將搜尋所有Usered: Name為"Rafi"的記錄」。注意,set部分和where部分不一定要一樣。我們可以索取一個欄位但是改變另一個欄位。而且,我們可以執行兩個或更多條件的搜尋。
  MySQL>update tbl set UserName='Rafi' where UserName='Berber' and LastName='Ton';
  Query OK, 1 row affected (0.04 sec)
  這個查詢搜尋了兩個字段,改變了UserName的值
組合PHP與MySQL
  在這個部分裡,我們將建立一個建單的基於PHPwebwebwebwebweb命令的來控制前面所建的MySQL的表。
  我們將建立下面的站點結構(假設你已經知道一些基本的HTML的知識):
  1. index.php3 用於前端查看表2. add.php3 用於往表中插入資料
  3. Modify.php3用於修改表中的記錄4. del.php3 用於刪除表中的記錄
  首先,我們想查看一下資料庫,看一下下面的腳本:
  --------------- -------------------------------------------------- ---------------
  Index.php
  
  Web Database Sample Index
  
〵〜〜〜〜〜〟〜(Fff.  
  mysql_connect() or die ("Problem connecting to DataBase");
  $query = "select * from tbl";
  $result = my_db_quequee("ex_db_queque" echo " Found these entries in the database:

";
  echo "
  
  
  
 〠＀ Request Date
  ";
  while ($r = mysql_fetch_array($result))
  {
  $idx = $
  {
  $idx = $ ;
  $last = $r["LastName"];
  $text = $r["FreeText"];
  echo "
  
  
  ";
  }
  echo "
  } 🀜  
  echo "No data .";
  }
  mysql_free_result($result);
  include ('links.x');
  ?> 🀜 『 -------------------------------------------------- ----------------
  好,以下給一些說明:
  我們先用正常的html標籤建立thml文件。當我們想要從html出來轉入PHP時,我們用來結束PHP部分。
  mysql_connect() 指令告訴PHP建立一個與MySQL伺服器的連線。如果連接建立成功,腳本將繼續,如果不成功,則列印出die命令的資訊「Problem connecting to Database」(如果要看關於mysql_connect的更多的信息和其它的PHP函數,可以去http://www .php.net下的文檔中查找)。
  現在,如果MySQL是按照我們上面所討論的那樣安裝的,就足夠了。但如果你使用的是預先安裝的MySQL(象ISP),你應該使用下面的指令:
  mysql_connect (localhost, username, password);
  我們可以將$query設為我們想要在MySQL中執行的查詢,然後使用mysql_db_query指令來執行它:
  $result = mysql_db_query("example", $query);
  這時,"example"表示資料庫的名字並且$query是要進行的查詢。
  我們使用MySQL指令select(像上面所描述的)來從表中取得所有的資料:
  $query = "select * from tbl";
  簡單地解釋一下$result的作用,如果執行成功,函數會傳回一個查詢結果的一個MySQL結果標識符,如果出錯則回傳false。傳回的不是結果而是一個標識符,可以在後面將它轉換成我們所需的資訊。
  現在,我們想檢查一下在資料庫中是否存在有記錄,並且如果有則將結果按照html的表格結構列印出來。為了檢查是否有數據,我們使用if指令和下面的語法:
  if (argument) {
  "do something;"
  } else {
  ment= true時你所要執行的命令,"do something different"為當argument =false時所要執行的命令。
  注意我們使用echo指令來輸出一些html標籤來建立html的表格結構。只有從PHP指令輸出的文字才會被 看成html內容 - PHP指令本身是不會看成html內容的。我們使用的另一個命令是while指令,使用格式如下:
  while (argument)) {
  "something to do";
  }
  while循環在argument=true時會不停地重複,執行在{}中的指令集。
  這裡我們組合了while迴圈和PHP函數$r=mysql_fetch_array($result)。這個函數根據對應的結果標識 符取回一筆記錄,並且將結果放在一個相關數組(associative array)$r中,它使用字段的名字作為數組的 鍵值。在我們的腳本中,我們將得到一個陣列:$r['idx'],$r['UserName'],$r['LastName']和
  $r['FreeText']。
  我們也可以使用mysql_fetch_row函數,它會將結果放在一個有序的數組中,我們可以使用$r[0],$r[1], $r[2]和$r[3]來得到相應的值。 。
  現在,我們有了所有的信息,我們可以把它在html表格中打印出來:
以下為引用的內容:
  echo "
  
  
  
  ";
  現在我們可以釋放一些資源,透過使用使用量)函數。
  PHP另一個有用的特性是在腳本中包含文字檔案的功能。讓我們假設你有一些可重複使用的程式碼(例如到其它頁面的連結),我們可以使用include函數,這樣可以節省一些程式碼和時間。而且,如果想改變這些程式碼,我們只需要改變包含文件的內容,它將會在所有包含它的文件中生效。
  這裡我們建立一個名為Links.x的文字文件,它將存放我們想用在每個頁面中的全部連結選單。
 


  
  include的語法是:
  Include ('included_text_file'); 🎜  現在我們可以用?>來關閉PHP部分,並且用來結束頁面。
 使用表單增加資料讓我們來看看下面的程式碼:
  ------------------------------------ -------------------------------------------------- ------
;
 新增項目
 頭>
 
 

新增項目



 
  
       

 表>

>
 
──-------- ----------------------------------------- --------- ---------------------------------- 假設你對表單很熟悉,這是一個相當簡單的腳本。我們根據html頁面設計了一個表單,在提交後呼叫add2tbl.php3腳本。現在,表單與MySQL表相對應由4個欄位組成:index number,FirstName,LastName 和 FreeText。注意在此表單中欄位名稱與 MySQL 表中欄位名稱相同,但這只是為了方便起見而不是必須的。
我們再一次使用了include指令 include ('links.x');?>(像在前面所解釋的)來增加連結。
讓我們來看看add2tbl.php3 腳本:
 --------------- ----------------------- --------------------------- ----------------
;
;
  if ($UserName)
  {
 mysql_connect() or die ("連接資料庫時出現問題"); $query = "插入表值('$idx','$UserName','$LastName','$FreeTextName','$Free ')";
  $result = mysql_db_query("example", $query);
echo "已插入資料。新表:

";
  $query = "SELECT * FROM tbl";
  $query = "SELECT * FROM tbl";
  $query = "SELECT * FROM tbl";
  $query = "SELECT * FROM tbl";
  $query = "SELECT * FROM tbl";
  $query = "SELECT * FROM tbl"; result = mysql_db_query("example", $query);
凡if ($result)
凡{
凡echo "
idx

 姓氏
 姓氏
 自由文字
";
  while ($r = mysql_fetch_array($result))
  {
  $idx = $["idx"];中加入了我們的註解。使用註解可以用“//”,伺服器將忽略此行的後面部分。
簡單,不是嗎?從資料庫中編輯一筆記錄:讓想像一下,我們想修改資料庫中存在看到的記錄。在前面,我們有一個叫set的SQL指令用來設定資料庫中存在欄位的值。我們將使用這個來修改資料庫中的整個命令記錄。考慮下面的主演:
 ------------------------------------------------- -------------------------------------------
:edit.php:

複製程式碼

程式碼如下:🎜



編輯資料庫中的條目
 頭>
 

編輯條目


  $query = "從表中選擇*";
 $result = mysql_db_query("example", $query);
凡if ($result) 凡{
凡echo "在資料庫中找到這些項目:
";
凡echo "

 idx
使用者名稱自由文字" ;
  while ($r = mysql_fetch_array($result))
  {
  $idx = $r["idx"]; Name
  $5 = $r[f. ];
:$text = $r["FreeText"];
echo "


echo "


echo "


$last&text=$text">$idx
 

 
 
 ";
  }
echo"
 else
  {
 echo "無資料。 ";
  }
 mysql_free_result($result);
  include ('link s.x ');



---------------------- -- ------------------------------------------------ -- --
 如你所見,這裡的程式碼有些熟悉。 $ user&last=$last&text=$text">$idx
這一行建立了一個到editing.php3的一個鏈接,並且給新的腳本配置了一些參數。同表單方式很像,只是使用的是連結。
我們想將資料庫中的記錄全部轉換到過,這樣我們就可以得到表中的目的數據,以便我們輕鬆修改它一些。 ----------------- -------------------------------- ------------------ -------------
Editing.php


複製程式碼
程式碼如下:


;

編輯條目 頭>   編輯條目


 
 

;
 
 
 
 
Name Last Name Domain Name
$idxtd >
  
$last $text
$idx $last $text
索引:
使用者名稱:  maxlength=100>
姓氏:  最大長度=100> td>
自由文字:
使用者名稱
$user $last $text
idx:
使用者名稱:  值=““>
姓氏:  值=““>
自由文字:  value="">

">


>
 


------------------------------------------------- -------------------------------
  好,這個腳本很簡單。我們要關心的是,當表單列印出來時,它記錄了當前記錄的數據,透過在 命令中的value屬性。這些數據是從前一個頁面傳遞過來的。
  現在,如果我們不改變記錄的訊息,它將傳回目前值,即缺省值。如果我們改變了欄位的值,欄位的值 將會變成新的值。接著我們可以將新值傳給另一個腳本,它將會改變MySQL表中的值。
  ------------------------------------------------- -------------------------------
  editdb.php:

複製程式碼 程式碼如下:


    nsql_conlect() or or or Problem);
  idx='$idx' ,UserName='$UserName',LastName='$LastName',FreeText='$FreeText' where
  idx='$idx'";
  $result = mysql_db_query("example", $query);
  $query = "SELECT * FROMsbl";
  $query = "SELECT * FROMbl";
  $query = "SELECT * FROMsbl";
  Sle  if ($result)
  {
  echo "Found these entries in the database:

";
  echo 「idx
  
  
  ";
  while ($r = mysql_fetch_array($result))
  { mysql_fetch_array($result))
 。 = $r["UserName"];
  $last = $r["LastName"];
  $text = $r["FreeText"];
  echo "
   
  
  
  ";
  } 🀜 〜〜〜〜〜); else
  {
  echo "No data.";
  }
  mysql_free_result($result);
  include ('links.x');
  ?>


-------------- -------------------------------------------------- ----------------
  基本上要關心的一件事情是下面一行:
  $query = "update tbl set idx='$idx',UserName='$UserName' ,LastName='$LastName',FreeText='$FreeText' where idx='$idx'";
  注意,它與我們在前面MySQL部分解釋的語法相同。另一件事,注意這個腳本改變的是idx=$idx的記錄, 如果表中有多筆idx等於$idx的記錄,所以這些記錄都會被改變。如果我們想更嚴格一些,我們可以像下面 改動where子句:
  $query = "update tbl set idx='$idx',UserName='$UserName', LastName='$LastName',FreeText='$FreeText' where idx='$idx' and UserName='$UserName' and LastName='$LastName' and FreeText='$FreeText'";
  這個語法將檢查所有的字段,而不僅僅是檢查idx。   從資料庫中刪除一筆記錄:
  好,刪除很容易。我們仍然需要兩個腳本:一個用來選擇要刪除的記錄(基本上同上面選擇要編輯的記 錄一樣),一個用來真正地進行刪除和列印新的表格。
  ------------------------------------------------- -------------------------------
  del.php


複製程式碼
程式碼如下:



 

從資料庫中刪除條目
 頭>
 
 

刪除條目


 
mysql_connect() or die (“連接資料庫時出現問題”);
  $query = "從表中選擇*";
 $result = mysql_db_query("example", $query); 凡
凡{
凡echo "在資料庫中找到這些項目:

";
echo "
 idx
用戶名自由文本";
  while ($r = mysql_fetch_array($result))
  {
  $idx = $r["idx"];
  $idx = $r["idx"];
 用戶名$last = $r["LastName"];
:$text = $r["FreeText"];
 echo "

 
 $idx
  

  
 ";
:}
:echo "
User Name Last Free Text
$user $last $text
$user $last $dtext td>
 
";
  }
否則
  {
 回顯“無數據”;
  }
 mysql_free_result($結果);
包括('links .x');
  ? >
>
  


http://www.jb51.net/article/27814.htm

以上就介紹了php和資料庫結合的一個簡單的web實例程式碼分析(php初學者),包含了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板