由於要調試JS的AJAX,JAVA寫感覺不夠輕便,所以直接撿起了原來的PHP,來做測試用。
最簡單的代碼
connect.php
<?php
$host="localhost";
$db_user="root";
$db_pass="";
$db_name="demo";
$timezone="Asia/Shanghai";
$link=mysql_connect($host,$db_user,$db_pass);
mysql_select_db($db_name,$link);
mysql_query("SET names UTF8");
header("Content-Type: text/html; charset=utf-8");
?>
search.php
<?php
include_once("connect.php");
$q = strtolower($_GET["term"]);
$query=mysql_query("select * from test where title like '$q%' limit 0,10");
while ($row=mysql_fetch_array($query)) {
$result[] = array(
'id' => $row['id'],
'label' => $row['title']
);
}
echo json_encode($result);
?>
sql
CREATE TABLE `art` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=15 ;
INSERT INTO `art` (`id`, `title`) VALUES
(1, 'jstest1'),
(2, 'jstest2'),
(3, 'jstest3'),
(4, 'jstest4'),
(5, 'jstest5'),
(6, 'jstest6');
分開寫的連接數據庫
common.ini
<?php
//非法調用判斷
if(!defined('Inc_Tag')){
exit("非法調用");
}
//硬路徑轉換
define('ROOT_PATH', substr(dirname(__FILE__), 0,-8));
//版本判斷
if (PHP_VERSION<4.0){
exit("版本太低");
}
require ROOT_PATH.'\includes\global.func.php';
require ROOT_PATH.'\includes\mysql.func.php';
define('start_time', _runtime());
//數據庫連接
define('DB_HOST','Localhost');
define('DB_NAME','test');
define('DB_USER','root');
define('DB_PASSWORD','123456');
//初始化數據庫
_connect(); //連接MYSQL數據庫
_select_db(); //選擇指定的數據庫
_set_names(); //設置字符集
?>
mysql.php
<?php
//防止惡意調用
if(!defined('Inc_Tag')){
exit();
}
/**
_connect()數據庫連接函數
*/
function _connect() {
//global表示全局變量的意思,意思是此變量在函數外部也可使用
global $_conn;
if(!$conn=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD)){
exit("數據庫連接失敗".mysql_error());
}
}
/**
*
* _select_db()選擇數據庫
*/
function _select_db(){
if(!mysql_select_db(DB_NAME)){
exit("ERROR".mysql_error());
}
}
/**
*
* _set_names()設置字符集
*/
function _set_names(){
if(!mysql_query('SET NAMES UTF8')){
exit('ERROR'.mysql_error());
}
}
/**
*
* _query()查詢語句
* @param unknown_type $sql
*/
function _query($_sql){
if (!$_result=mysql_query($_sql)){
exit('SQL FAILED'.mysql_error());
}
return $_result;
}
/**
*
* Enter description here ...
* @param unknown_type $_sql
*/
function _fetch_array($_sql){
return mysql_fetch_array(_query($_sql),MYSQL_ASSOC);
}
/**
*
* fetch_array_list($_result)在結果中讀取關聯數組
* @param unknown_type $_result
*/
function _fetch_array_list($_result){
return mysql_fetch_array($_result,MYSQL_ASSOC);
}
/**
*
* Enter description here ...
* @param unknown_type $_sql
* @param unknown_type $_info
*/
function _is_repeat($_sql,$_info){
if(_fetch_array($_sql)){
_alert_back($_info);
}
}
/**
*
* Enter description here ...
*/
function _affected_rows() {
return mysql_affected_rows();
}
/**
*
* _close關閉數據庫連接
*/
function _close(){
if (!mysql_close()){
exit("關閉異常".mysql_error());
}
}
?>
global.fun
<?php
function _runtime(){
$_mtime=explode(' ', microtime());
$_temp_time=$_mtime[1]+$_mtime[0];
return $_temp_time;
}
/**
*
* _alert_back()對話框彈出函數,然後返回一步
* @param $msg //彈出對話框消息
* @return void
*/
function _alert_back($msg){
echo "<script type='text/javascript'>alert('".$msg."');history.back();</script>";
exit();
}
/**
*
* _alert_close()彈出消息,關閉
* @param unknown_type $msg
*/
function _alert_close($msg){
echo "<script type='text/javascript'>alert('".$msg."');window.close();</script>";
exit();
}
function _get_xml($_xml_file){
if (file_exists($_xml_file)){
$_xml=file_get_contents($_xml_file);
preg_match_all('/<vip>(.*)<\/vip>/s',$_xml,$_dom);
echo $_dom[1];
foreach ($_dom[1] as $_value) {
preg_match_all('/<id>(.*)<\/id>/s',$_value,$_id);
print_r($_id);
preg_match_all('/<username>(.*)<\/username>/s',$_value,$_username);
preg_match_all( '/<sex>(.*)<\/sex>/s', $_value, $_sex);
preg_match_all( '/<face>(.*)<\/face>/s', $_value, $_face);
preg_match_all( '/<email>(.*)<\/email>/s', $_value, $_email);
preg_match_all( '/<url>(.*)<\/url>/s', $_value, $_url);
$_html['id'] = $_id[1][0];
$_html['username'] = $_username[1][0];
$_html['sex'] = $_sex[1][0];
$_html['face'] = $_face[1][0];
$_html['email'] = $_email[1][0];
$_html['url'] = $_url[1][0];
}
} else {
echo '文件不存在';
}
return $_html;
}
/**
*
* Enter description here ...
* @param unknown_type $_xmlfile
* @param unknown_type $_clean
*/
function _set_xml($_xmlfile,$_clean) {
$_fp = @fopen('new.xml','w');
if (!$_fp) {
exit('系統錯誤,文件不存在!');
}
flock($_fp,LOCK_EX);
$_string = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n";
fwrite($_fp,$_string,strlen($_string));
$_string = "<vip>\r\n";
fwrite($_fp,$_string,strlen($_string));
$_string = "\t<id>{$_clean['id']}</id>\r\n";
fwrite($_fp,$_string,strlen($_string));
$_string = "\t<username>{$_clean['username']}</username>\r\n";
fwrite($_fp,$_string,strlen($_string));
$_string = "\t<sex>{$_clean['sex']}</sex>\r\n";
fwrite($_fp,$_string,strlen($_string));
$_string = "\t<face>{$_clean['face']}</face>\r\n";
fwrite($_fp,$_string,strlen($_string));
$_string = "\t<email>{$_clean['email']}</email>\r\n";
fwrite($_fp,$_string,strlen($_string));
$_string = "\t<url>{$_clean['url']}</url>\r\n";
fwrite($_fp,$_string,strlen($_string));
$_string = "</vip>";
fwrite($_fp,$_string,strlen($_string));
flock($_fp,LOCK_UN);
fclose($_fp);
}
/**
*
* _location()跳轉函數
* @param unknown_type $_msg
* @param unknown_type $_url
*/
function _location($_msg,$_url){
if (!empty($_msg)){
echo "<script type='text/javascript'>alert('$_msg');location.href='$_url';</script>";
exit();
}else {
header('location:'.$_url);
}
}
function _title($_string){
if(mb_strlen($_string,'utf-8')>14){
return mb_substr($_string, 1,6,'utf-8').'...';
}
return $_string;
}
/**
*
* _html()對數組或者字符串進行html過濾
* @param array or string $_string
* @return string or array
*/
function _html($_string){
if (is_array($_string)){
foreach ($_string as $_key=>$_value){
$_string[$_key]=_html($_value);//採用遞歸對其進行html過濾
}
}else {
$_string=htmlspecialchars($_string);
}
return $_string;
}
/**
*
* _page()對查詢的進行分頁處理,
* @param unknown_type $_sql
* @param unknown_type $_size
*/
function _page($_sql,$_size) {
//將裏面的所有變量取出來,外部可以訪問
global $_page,$_pagesize,$_pagenum,$_pageabsolute,$_num;
if (isset($_GET['page'])) {
$_page=$_GET['page'];
if (empty($_page) || $_page < 0 || !is_numeric($_page)) {
$_page=1;
} else {
$_page=intval($_page);
}
} else {
$_page=1;
}
$_pagesize=$_size;
$_num=mysql_num_rows(_query($_sql));
if ($_num==0) {
$_pageabsolute=1;
} else {
$_pageabsolute=ceil($_num/$_pagesize);
}
if ($_page>$_pageabsolute) {
$_page=$_pageabsolute;
}
$_pagenum=($_page - 1) * $_pagesize;
}
/**
*
*/
function _paging($_type) {
global $_page,$_pageabsolute,$_num;
if ($_type==1) {
echo '<div id="page_num">';
echo '<ul>';
for ($i=0;$i<$_pageabsolute;$i++) {
if ($_page==($i+1)) {
echo '<li><a href="'.Script.'.php?page='.($i+1).'" class="selected">'.($i+1).'</a></li>';
} else {
echo '<li><a href="'.Script.'.php?page='.($i+1).'">'.($i+1).'</a></li>';
}
}
echo '</ul>';
echo '</div>';
} elseif ($_type==2) {
echo '<div id="page_text">';
echo '<ul>';
echo '<li>'.$_page.'/'.$_pageabsolute.'頁 | </li>';
echo '<li>共有<strong>'.$_num.'</strong>個會員 | </li>';
if ($_page==1) {
echo '<li>首頁 | </li>';
echo '<li>上一頁 | </li>';
} else {
echo '<li><a href="'.SCRIPT.'.php">首頁</a> | </li>';
echo '<li><a href="'.SCRIPT.'.php?page='.($_page-1).'">上一頁</a> | </li>';
}
if ($_page==$_pageabsolute) {
echo '<li>下一頁 | </li>';
echo '<li>尾頁</li>';
} else {
echo '<li><a href="'.SCRIPT.'.php?page='.($_page+1).'">下一頁</a> | </li>';
echo '<li><a href="'.SCRIPT.'.php?page='.$_pageabsolute.'">尾頁</a></li>';
}
echo '</ul>';
echo '</div>';
}
}
function _unsetcookies(){
setcookie('username','',time()-1);
setcookie('uniqid','',time()-1);
session_destroy();
_location(null,'index.php');
}
/**
* _code() 註冊碼函數
* @access public
* @param $_width 驗證碼圖片寬
* @param $_height 驗證碼圖片高
* @param $_rnd_code 驗證碼位數
* @param $_flag 是否顯示黑色邊框
* @return void 返回一驗證碼圖片
*/
function _code($_width=75,$_height=25,$_rnd_code=4,$flag=FALSE){
//創建隨機碼
for ($i=0;$i<$_rnd_code;$i++) {
$_nmsg .= dechex(mt_rand(0,15));
}
//保存在session
$_SESSION['code'] = $_nmsg;
//創建一張圖像
$_img = imagecreatetruecolor($_width,$_height);
//白色
$_white = imagecolorallocate($_img,255,255,255);
//填充
imagefill($_img,0,0,$_white);
$_flag = false;
if ($_flag) {
//黑色,邊框
$_black = imagecolorallocate($_img,0,0,0);
imagerectangle($_img,0,0,$_width-1,$_height-1,$_black);
}
//隨即畫出6個線條
for ($i=0;$i<6;$i++) {
$_rnd_color = imagecolorallocate($_img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
imageline($_img,mt_rand(0,$_width),mt_rand(0,$_height),mt_rand(0,$_width),mt_rand(0,$_height),$_rnd_color);
}
//隨即雪花
for ($i=0;$i<100;$i++) {
$_rnd_color = imagecolorallocate($_img,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255));
imagestring($_img,1,mt_rand(1,$_width),mt_rand(1,$_height),'*',$_rnd_color);
}
//輸出驗證碼
for ($i=0;$i<strlen($_SESSION['code']);$i++) {
$_rnd_color = imagecolorallocate($_img,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));
imagestring($_img,5,$i*$_width/$_rnd_code+mt_rand(1,10),mt_rand(1,$_height/2),$_SESSION['code'][$i],$_rnd_color);
}
//輸出圖像
header('Content-Type: image/png');
imagepng($_img);
//銷燬
imagedestroy($_img);
}
function _sha1_uniqid(){
return sha1(uniqid(rand(),TRUE));
}
?>
查詢
<?php
/**
* TestGuest Version1.0
* ================================================
* Copy 2010-2012 yc60
* Web: http://www.yc60.com
* ================================================
* Author: Lee
* Date:2011-9-7
*/
error_reporting(E_ALL^E_NOTICE);
//定義常量,授權includes的包含文件
define('Inc_Tag', TRUE);
//定義常量,包含CSS文件
define('Script', 'blog');
//包含公共文件
require dirname(__FILE__).'/includes/common.inc.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>hello gull記事本-博友界面</title>
<?php
//包含CSS文件
require ROOT_PATH.'includes/title.inc.php';
?>
</head>
<body>
<?php
//包含頭文件
require ROOT_PATH.'includes/header.inc.php';
//分頁模塊
global $_pagesize,$_pagenum;
_page("SELECT dg_id FROM tg_user",10); //第一個參數獲取總條數,第二個參數,指定每頁多少條
//讀取數據庫信息
$_result=_query("SELECT t_username,t_sex,t_face FROM tg_user ORDER BY t_reg_time DESC limit $_pagenum,$_pagesize");
?>
<div id="blog">
<div>
<h2>博友信息</h2>
<?php while (!!$rows=_fetch_array_list($_result)){?>
<dl>
<dd class="user"><?php echo $rows['t_username']?>(<?php echo $rows['t_sex']?>)</dd>
<dt><img src="<?php echo $rows['t_face']?>" /></dt>
<dd class="message">發消息</dd>
<dd class="friend">加爲好友</dd>
<dd class="guest">寫留言</dd>
<dd class="flower">給他送花</dd>
</dl>
<?php }?>
<?php
_paging(1);
?>
</div>
<?php
//包含尾部文件
require ROOT_PATH.'includes/footer.inc.php';
?>
</body>
</html>