国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

心得:PHP對文本數據庫的五大基本操作方法

2024-05-04 23:03:25
字體:
來源:轉載
供稿:網友

最大的網站源碼資源下載站,

  php實現對文本數據庫的數據顯示、加入、修改、刪除、查詢五大基本操作的方法

  我用一個留言本程序作為例子,闡述php實現對文本數據庫的數據顯示、加入、修改、刪除、查詢五大基本操作的方法。

  此文本數據庫共有字段10個:客戶ip、發言時間、客戶名、客戶email、客戶主頁地址、留言表情圖片名、客戶qq、客戶形象圖片、留言內容、管理員回復內容。
 
1、加入數據程序段。

$date=date("y-m-d h:i:s");//取得系統時間
$ip = $http_server_vars[remote_addr]; //取得發言的ip地址
$text=encode($gb_text);//去掉留言內容后面的空格.
$fp=fopen("gb.dat","a");//以只寫模式打開gb.dat文本文件,文件指針指向文件尾部.
$str=$ip."|".$date."|".$gb_name."|".$gb_email."|".$gb_home."|".$face."|".$gb_qq."|".$head."|".$text."|".$reply."/n";//將所有留言的數據賦予變量$str,"|"的目的是用來今后作數據分割時的數據間隔符號。
fwrite($fp,$str);//將數據寫入文件
fclose($fp);//關閉文件
showmessage("留言成功!","index.php","3");//留言成功,3秒后自動返回主界面。
其中的$gb_name 、$gb_email、$gb_home、$face、$gb_qq、$head、$gb_text、$reply是由發言表單傳過來的數據。

2、數據顯示程序段

<?
if (file_exists("gb.dat")){//檢測文件是否存在
$array=file("gb.dat");//將文件全部內容讀入到數組$array
$arr=array_reverse($array);//將$array里的數據安行翻轉排列(即最后一行當第一行,依此類推)讀入數組$arr的每一個單元($arr[0]...)。
$num=count($array);//獲取數組$array里的信息數(一行為一條信息)
if ($num>0){//如果信息數大于零(即文本數據庫不為空)
$total=ceil($num/$pagesize);//計算總頁數(取最大整數,即凡有小數點都進一取整,$pagesize為預設的每頁顯示的信息數)
if($page<1){//如果當前頁面數碼號小于1
$page=1;//則賦值為1
}
$number=($page-1)*$pagesize;//計算當前所顯示第一個留言的數碼號(數碼號從零開始,主要是達到與數組單元號對應的目的)
for($i=0;$i<=$pagesize-1;$i++){//進入循環
$row=explode("|",$arr[$number]);//以"|"作為分割符,分割數組$arr中每第$number個單元的數據,并將這些數據賦予數組$rom
list($ip,$datetime,$name,$email,$home,$face,$qq,$head,$text,$reply)=$row;//將數組$row里的單元數據按順序賦予括號里的變量
?>
<img src=<? echo $head ?> >//顯示客戶形象圖片
<br>
<font color="#0099cc">昵稱【<? echo $name ?><font size="2">】<br>//顯示客戶名
發表于:<? echo $datetime ?>//顯示留言發表時間
<br>
<img src=<? echo $face ?>>//顯示客戶留言表情圖片
<? echo $name ?>說:<? echo $text; ?>//顯示客戶留言內容
<br>
<? echo $reply ?>//顯示回復內容
<br>
<a href="<? echo $home ?>" target="_blank">訪問<? echo $name ?>的主頁</a>//客戶主頁的超連接
<a href="mailto:<? echo $email ?>">給<? echo $name ?>發信</a>//客戶e-mail的連接
<? echo $name ?>的qq號碼是<? echo $qq ?>//顯示客戶的qq號碼
<? echo $name ?>的ip地址為<? echo $ip ?>" //顯示客戶的ip地址
<a href="reply.php?time=<? echo $datetime ?>">回復</a>//留言回復的連接語句
<a href="del.php?time=<? echo $datetime ?>">刪除</a>//留言刪除的語句(以客戶留言時間$datetime作為刪除標識)
<br>
<?
if ($number == $num-1)//如果數組的單元號等于總留言數減一(因為單元號以零開始的,所以這意味著這是最后一條留言)
{
break;//跳出循環
}
$number = $number + 1; //數組單元號加1
}//循環結束符
}
if ($page <> 1)//如果當前頁面數碼號不等于1
{
$back = $page - 1;//當前頁面數碼號減1,并將此值賦予變量$back
echo "<a href=index.php?page=1>第一頁</a>";//顯示第一頁的連接
echo " <a href=index.php?page=$back>上一頁</a>" ;當前頁面數碼號等于$back,并顯示其連接
}
if ($page <> $total)//如果當前頁面數碼號不等于總頁數號(最后一頁數碼號)
{
$next = $page + 1;//當前頁面數碼號加1并賦予變量$next
echo " <a href=index.php?page=$next>下一頁</a>" ;//顯示下一頁連接
echo " <a href=index.php?page=$total>最后一頁</a>"; 顯示最后一頁連接
}
echo "頁數:$page / $total";//顯示當前頁面數碼號和顯示最后一頁數碼號
echo "共有 $num 條留言";//顯示留言數信息
}
else {
echo "<center>當前沒有任何留言!</center>";//如果文件內容為空則顯示的信息
}
else {
echo "<center>數據文件丟失,請聯系管理員!或發布留言重新建立數據文件!</center>";//如果文件不存在顯示的信息
}

3、數據修改程序段

$list=file("gb.dat");//讀取整個gb.dat文件到數組$list,數組每一個元素為一條留言($list[0]是第一條留言的數據、$list[1]是第一條留言的數據.....
$n=count($list);//計算$list內容里的留言總數,并賦予變量$n
if ($n>0){ //如果留言數大于0
$fp=fopen("gb.dat","w");//則以只寫模式打開文件gb.dat
$gb_reply=encode($gb_reply);
for ($i=0;$i<$n;$i++) {//進入循環
if(eregi($ttime,$list[$i])){//將送來發留言時間$ttime與數組單元$list里內容進行字串匹配比較
$f=explode("|",$list[$i]);//如果找到匹配,就以"|"作為分隔符,切開留言信息$list[$i](第$i條留言),并將這些數據賦予數組$f
$f[9]=$gb_reply;//將$f[9](留言信息最后一條數據)用$gb_reply(回復內容)代替。
$list[$i]=$f[0]."|".$f[1]."|".$f[2]."|".$f[3]."|".$f[4]."|".$f[5]."|".$f[6]."|".$f[7]."|".$f[8]."|".$f[9]."/n"; //將數組單元$list[$i]的內容用數組$f加上分隔符"|"代替(其中$f[9]是修改了的新數據)。
break;//跳出循環
}
}//循環結束符
}
for($i=0;$i<=$n;$i++){//進入循環
fwrite($fp,$list[$i]);//將數組$list的每個單元為一行,寫入文件gb.dat
}//循環結束符
fclose($fp);//關閉文件
showmessage("回復成功!","index.php");//回復成功,自動返回主界面。

4、數據刪除程序段

$list=file("gb.dat");//讀取整個gb.dat文件到數組$list,數組每一個元素為一條留言($list[0]是第一條留言的數據、$list[1]是第一條留言的數據.....
$n=count($list);//計算$list內容里的留言總數,并賦予變量$n
if ($n>0){//如果留言數大于0
$fp=fopen("gb.dat","w");//則以只寫模式打開文件gb.dat
for ($i=0;$i<$n;$i++) {//進入循環
if(eregi($ttime,$list[$i])){//將發送過來發留言時間$ttime與數組$list[$i]里的字串進行匹配比較
$list[$i]="";//如果匹配成功,則將$list[$i]清空(達到刪除的目的)
break;//跳出循環
}
}//循環結束符
for($i=0;$i<=$n;$i++){//進入循環
fwrite($fp,$list[$i]);//將數組$list的每個單元為一行,寫入文件gb.dat
} //循環結束符
fclose($fp);//關閉文件
showmessage("刪除成功!","index.php");//刪除成功,自動返回主界面。
}

5、數據查詢程序段

<form action="search.php" method="post">
<font color="#0099cc" size="2">搜索關鍵字:
<input name="found" type="text" id="found" size="12">
<input name="submit" type="image" src="http://www.survivalescaperooms.com/htmldata/2007-05-28/upload/200902/search.gif" alt="留言搜索">
</font></td>
</tr>
</table>
</form>
////////////////////////////////上面是搜索表單語句段
<?
$id=0;
$list=file("gb.dat");//讀取整個gb.dat文件到數組$list,數組每一個元素為一條留言($list[0]是第一條留言的數據、$list[1]是第一條留言的數據.....
$n=count($list);//計算$list內容里的留言總數,并賦予變量$n
$found=trim($found);
if (!$found){ //如果$found為假
echo "<center>您沒有輸入任何關鍵字!</center>";//作相關顯示
}
else {
if($n>0){//如果留言數大于0
for ($i=0;$i<$n;$i++) {//進入循環
if(eregi($found,$list[$i])){//輸入的關鍵字與數組$list[$i]里的字串進行匹配比較
$row=explode("|",$list[$i]); $id=1; //如果找到匹配,就以"|"作為分隔符,切開留言信息$list[$i](第$i條留言),并將這些數據賦予數組$row.并將變量$id賦予1,以便作為是否找到匹配的判斷。
list($ip,$datetime,$name,$email,$home,$face,$qq,$head,$text,$reply)=$row;//將數組$row里的單元數據按順序賦予括號里的變量
?>
<img src=<? echo $head ?> >//顯示客戶形象圖片
<br>
<font color="#0099cc">昵稱【<? echo $name ?><font size="2">】<br>//顯示客戶名
發表于:<? echo $datetime ?>//顯示留言發表時間
<br>
<img src=<? echo $face ?>>//顯示客戶留言表情圖片
<? echo $name ?>說:<? echo $text; ?>//顯示客戶留言內容
<br>
<? echo $reply ?>//顯示回復內容
<br>
<a href="<? echo $home ?>" target="_blank">訪問<? echo $name ?>的主頁</a>//客戶主頁的超連接
<a href="mailto:<? echo $email ?>">給<? echo $name ?>發信</a>//客戶e-mail的連接
<? echo $name ?>的qq號碼是<? echo $qq ?>//顯示客戶的qq號碼
<? echo $name ?>的ip地址為<? echo $ip ?>" //顯示客戶的ip地址
<a href="reply.php?time=<? echo $datetime ?>">回復</a>//留言回復的連接語句
<a href="del.php?time=<? echo $datetime ?>">刪除</a>//留言刪除的語句(以客戶留言時間$datetime作為刪除標識)
<br>
<?
}
}//循環結束符
}}
if($id==0){ echo "<center>沒有找到與關鍵字匹配的留言!</center>";}//如果$id=0則表示沒找到匹配,顯示相關提示
?>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 剑阁县| 龙门县| 根河市| 永德县| 吴江市| 娱乐| 沁水县| 六安市| 成安县| 崇义县| 云霄县| 新乡县| 台湾省| 遵义市| 双城市| 姜堰市| 清远市| 夏河县| 青岛市| 民乐县| 新宁县| 虎林市| 永定县| 泉州市| 邵阳市| 江阴市| 玉龙| 宽甸| 大城县| 于都县| 革吉县| 师宗县| 罗平县| 上蔡县| 南投县| 卓资县| 左权县| 修武县| 五莲县| 大竹县| 盐池县|