php實作簡單的留言板功能
#1、原則
#簡單的說就是資料庫的創建,添加數據,顯示在前端。我的程式只是簡單的留言再顯示。
先寫好留言的前端頁面,就簡單的寫入作者,標題和內容。
2、介面:
#3、顯示留言的介面:
#4、程式碼
(1)新增留言的頁面
<!DOCTYPE HTML> <HTML> <Head> <meta http-equiv="CONTENT-TYPE" ; content="text/html" ; charset="UTF-8"> <title>留言</title> <style type="text/css"> .message{ margin-top:0px; } h1{ margin-top:200px; } </style> </Head> <Body> <h1 align="center">留言板</h1> <div class="message"> <form name="addform" id="addform" method="post" action="message_handle.php"> <table type="text" align="center" border="1px,solid"> <input type="hidden" id="id" name="id" /> <tr> <td>标题</td> <td><input type="text" name="title" id="title"/></td> </tr> <tr> <td>作者</td> <td><input type="text" name="author" id="author"/> </td> </tr> <tr> <td>内容</td> <td><textarea name="message" id="message" cols="60" role="15"></textarea></td> </tr> <tr> <td><input type="submit" name="sumbit"/></td> <td><input type="reset" name="reset"/></td> </tr> </table> </form> </div> </Body> </HTML>
(2)留言的後台處理,把作者,標題,內容存入已建好的資料庫中
<?php header("CONTENT-TYPE:text/html;charset=UTF-8"); define("HOST","127.0.0.1"); define("USERNAME","root"); define("PASSWORD",""); if($con=new mysqli(HOST,USERNAME,PASSWORD,"test")){ echo $con->error; } if($con->select_db("messageboard")){ echo $con->error; } if($con->query("SET NAMES utf8")){ echo $con->error; } $id=$_POST["id"]; $title=$_POST["title"]; $author=$_POST["author"]; $message=$_POST["message"]; $time=date('y-m-d h:m:s'); $sql="insert into messageboard(id,title,author,message,dateline) values('$id','$title','$author','$message','$time')"; if($str=$con->query($sql)){ echo "<script>alert('留言成功');window.location.href='show_message.php'</script>"; } else { echo "<script>alert('留言失败');window.location.href='messageboard.php'</script>"; } ?>
(3)下面是顯示留言的頁面代碼
<?php header("CONTENT-TYPE:text/html;charset=UTF-8"); define("HOST","127.0.0.1"); define("USERNAME","root"); define("PASSWORD",""); if($con=new mysqli(HOST,USERNAME,PASSWORD,"test")){ echo $con->error; } if($con->select_db("messageboard")){ echo $con->error; } if($con->query("SET NAMES utf8")){ echo $con->error; } $sql="select * from messageboard ORDER BY dateline DESC "; $str=$con->query($sql); if($str && mysqli_num_rows($str)){ while($row= mysqli_fetch_assoc($str)){ $data[]=$row; } } ?> <!DOCTYPE HTML> <HTML> <Head> <meta http-equiv="CONTENT-TYPE" ; content="text/html" ; charset="UTF-8"> <title>留言板</title> <style type="text/css"> </style> </Head> <Body> <div> <?php if(empty($data)){ echo "当前没有留言"; } else{ foreach($data as $value) { ?> <table cellpadding="2" cellspacing="8" align="center" border="1px,solid"> <tr> <td>标题</td> <td><?php echo $value['title']; ?></td> </tr> <tr> <td>作者</td> <td><?php echo $value['author']; ?></td> </tr> <tr> <td>内容</td> <td><?php echo $value['message']; ?></td> </tr> <tr> <td><?php echo $value['dateline'];;?></td> </tr> </table> </div> <?php } } ?> </Body> </HTML>
5、所遇到的問題
剛開始顯示頁面上不能顯示數據,找了半天原因,結果是因為在sql中寫錯了查詢方式寫成了:
select * from message where dateline desc;
用where得有條件,才能查詢。得有例如:
select * from message where dateline=$date;
因為我的程式沒有從前個頁面傳遞資料到這,所以只能用下面這種透過時間來排序羅列出所有資料。
select * from message order by dateline;
感謝大家的閱讀,以上程式碼有不足的地方請大家指出,希望大家可以有所收穫。
本文轉載自:https://blog.csdn.net/jeak2015/article/details/53440522
推薦教學:《PHP教學》
以上是php實作簡單的留言板功能(附源碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!