前言:
因为基本没有正式进行前后端的工作,或者说做过的都是类似于calfbbs之类的开源项目简单的再开发,对于底层的东西不太清楚。
主要应用:
MySQL+PHP+HTML
- 完成本地集成环境的基本安装和配置(修改相应端口和mysql初始配置)
- 为了方便起见,直接替换htdocs全文件;当然也可以修改apache中配置,修改默认目录
- mysql初始化,修改配置文件pma的密码设置,防止phpmyadmin打开时报错
- 初始化mysql中的root密码(最好),默认密码为空
- 有时候会出现mysql中user表损坏需要修复,如果还不成功建议直接删除重装
前端:最简单那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>
的原因只是为了更好地体现利用php在数据库查询之后,查询结果并反馈给前端页面,而不是直接用php进行的echo操作;
后端:利用php实现对于数据库访问,并将查询结果反馈到前端。
<?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连接数据库的操作上有所变化,php5的mysql_connect参数有所变化,php5不需要指定数据库即DB参数;php7中需要mysqli_connect的四个参数;host为i访问的p地址。如果使用xampp或者mamp的集成环境,那么host地址就是127.0.0.1(localhost测试没有问题)
关于Xampp和Mamp的JQuery的使用
如果初始化安装的xampp或者mamp的话,需要在htdocs文件中放入jquery-3.2.1.min.js文件,具体使用什么版本,自行决定。目前看起来最新的xampp和mamp使用3.2.1版本的都没有问题;
注意事项:
1.目录结构
-htdocs
--find.php
--index.html
--jquery-3.2.1.min.js
2.可能会出现的问题
在windows的xampp环境下出现过php报错的情况,解决方案是将php7.dll文件复制到系统的window/system32目录下,问题解决。
MAMP环境正常运行没有问题。
PHP连接MySQL错误:Call to undefined function mysql_connect()
在配置php.ini中
确保extension_dir的指向含有php_mysql.dll的目录,一般是ext.
确php7ts.dll文件在C:\WINDOWS下面。
3.关于文件的命名
index.html随便起了名,不过index的html在配置文件中有没有优先级不知道,按照这种命名方式肯定是可以登陆的。如有其他命名修改优先级;