前言:
因為基本沒有正式進(jìn)行前后端的工作,或者說做過的都是類似于calfbbs之類的開源項目簡單的再開發(fā),對于底層的東西不太清楚。
主要應(yīng)用:
MySQL+PHP+HTML
- 完成本地集成環(huán)境的基本安裝和配置(修改相應(yīng)端口和mysql初始配置)
- 為了方便起見,直接替換htdocs全文件;當(dāng)然也可以修改apache中配置,修改默認(rèn)目錄
- mysql初始化,修改配置文件pma的密碼設(shè)置,防止phpmyadmin打開時報錯
- 初始化mysql中的root密碼(最好),默認(rèn)密碼為空
- 有時候會出現(xiàn)mysql中user表損壞需要修復(fù),如果還不成功建議直接刪除重裝
前端:最簡單那html頁面,完成form填寫和反饋,利用jQuery的 ajax完成異步查詢
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Search our Phone Directory</h1>
<form id="searchform" method="post">
<div>
<label for="search_term">Search name phone</label>
<input type="text" name="search_term" id="search_term"><br/>
Account_name: <input type="text" name="Account_name" id="name"/>
<div id="result"> the result!</div>
Account_passwd: <input type="text" name="Account_passwd" id="passwd"/><br/>
<input type="submit" value="search" id="search_button" />
</div>
</form>
<div id="search_results"></div>
</body>
</html>
<script src="./jquery-3.2.1.min.js"></script>
<script type='text/javascript'>
$(document).ready(function(){
$("#search_results").slideUp();
$("#search_button").click(function(e){
e.preventDefault();
ajax_search();
});
$("#search_term").keyup(function(e){
e.preventDefault();
ajax_search();
});
});
function ajax_search(){
$("#search_results").show();
var search_val=$("#search_term").val();
var names=document.getElementById("name").value;
var passwds=document.getElementById("passwd").value;
// var searchform = document.getElementById('searchform');
//
function my$(id) {
return document.getElementById(id);
};
$.post("./find.php", {search_term : search_val,name :names,passwd:passwds}, function(data){
if (data.length>0){
// $("#name").html(data);
$("#search_results").html(data);
my$("result").innerText = data;
}
})
}
</script>
使用這個<div id="result"> the result!</div>的原因只是為了更好地體現(xiàn)利用php在數(shù)據(jù)庫查詢之后,查詢結(jié)果并反饋給前端頁面,而不是直接用php進(jìn)行的echo操作;
后端:利用php實現(xiàn)對于數(shù)據(jù)庫訪問,并將查詢結(jié)果反饋到前端。
<?php
define(HOST, "localhost");
define(USER, "root");
define(PW, "123");
define(DB, "calfbbs");
//echo "start search----1";
$connect = mysqli_connect(HOST,USER,PW,DB)
or die('Could not connect to mysql server.' );
//mysql_select_db(DB, $connect)
//or die('Could not select database.');
//$term = strip_tags(substr($_POST['search_term'],0, 100));
//$term = mysqli_escape_string($term);
$name = $_POST['name'];
$passwd = $_POST['passwd'];
$sql = "select * from calf_consumer where consumer_id='$name' and consumer_name='$passwd'";
//$sql = "show tables";
//echo "start search";
$result = mysqli_query($connect,$sql);
//echo $result;
$string ='';
//echo "start search";
if (mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_object($result)){
$string .= "<b>".$row->consumer_id."</b> - ";
$string .= $row->consumer_name."</a>";
$string .= "<br/>\n";
}
}else{
// echo "<script>alert(\"No matches!\");location.href='index.html?a=sdsdf&b=dsfs'</script>";
$string = "No matches!";
}
//echo "<script>alert($string);location.href='index.html'</script>";
echo $string;
//$string = $_POST["email"];
mysqli_close($connect);
?>
php中直接定義變量;
define(HOST, "localhost");
define(USER, "root");
define(PW, "123");
define(DB, "calfbbs");
php7在php5連接數(shù)據(jù)庫的操作上有所變化,php5的mysql_connect參數(shù)有所變化,php5不需要指定數(shù)據(jù)庫即DB參數(shù);php7中需要mysqli_connect的四個參數(shù);host為i訪問的p地址。如果使用xampp或者mamp的集成環(huán)境,那么host地址就是127.0.0.1(localhost測試沒有問題)
關(guān)于Xampp和Mamp的JQuery的使用
如果初始化安裝的xampp或者mamp的話,需要在htdocs文件中放入jquery-3.2.1.min.js文件,具體使用什么版本,自行決定。目前看起來最新的xampp和mamp使用3.2.1版本的都沒有問題;
注意事項:
1.目錄結(jié)構(gòu)
? -htdocs
? --find.php
? --index.html
? --jquery-3.2.1.min.js
2.可能會出現(xiàn)的問題
在windows的xampp環(huán)境下出現(xiàn)過php報錯的情況,解決方案是將php7.dll文件復(fù)制到系統(tǒng)的window/system32目錄下,問題解決。
MAMP環(huán)境正常運行沒有問題。
PHP連接MySQL錯誤:Call to undefined function mysql_connect()
在配置php.ini中
確保extension_dir的指向含有php_mysql.dll的目錄,一般是ext.
確php7ts.dll文件在C:\WINDOWS下面。
3.關(guān)于文件的命名
index.html隨便起了名,不過index的html在配置文件中有沒有優(yōu)先級不知道,按照這種命名方式肯定是可以登陸的。如有其他命名修改優(yōu)先級;