phpmysqlajax
1. ajax+php+mysql製作的聊天室,因為每秒刷新一次,時間一長APACHE佔用伺服器的資源就相當大,CPU可能到100%
你可以這樣,使用memcached 做緩存,每秒讀取讓後台執行,後台每秒更新一次cache,客戶端每秒請求你讀取memcache 這樣就快多了,如果讀取緩存失敗,就處理你的業務(讀取資料庫等等),具體情況要看是資料庫讀寫慢,還是並發數高,如果並發數太高的話,只能加伺服器負載均衡來解決,畢竟每個應用程序像hello,world那麼簡單.
------------------------------------------------------------------
做緩存是必要的,100個客戶端發送請求,有一半是真正的請求業務處理,一半緩存里讀取,就會緩解許多
2. 關於php+mysql+ajax省市區三級聯動菜單,求幫助
基本思想就是:在JS動態創建select控制項的option,通過Ajax獲取在PHP從SQL資料庫獲取的省市區信息,代碼有點長,但很多都是類似的,例如JS中省、市、區獲取方法類似,PHP中通過參數不同執行不同的select語句。
index.html代碼:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title>省市區三級聯動</title>
<METAhttp-equiv=Content-Typecontent="text/html;charset=gb2312">
<scriptsrc="scripts/thumbnails.js"type="text/javascript"></script>
</head>
thumbnails.js代碼:
window.onload=getProvince;
functioncreateRequest(){//Ajax於PHP交互需要對象
try{
request=newXMLHttpRequest();//創建一個新的請求對象;
}catch(tryMS){
try{
request=newActiveXObject("Msxml2.XMLHTTP");
}catch(otherMS){
try{
request=newActiveXObject("Microsoft.XMLHTTP");
}catch(failed){
request=null;
}
}
}
returnrequest;
}
functionsech(id){//省市改變時觸發,select的onchange事件
varaa=document.getElementById(id);
if(id=="sheng"){
getCity(aa.value);//這里aa.value為省的id
}
if(id=="shi")
{
getCounty(aa.value);//這里aa.value為市的id
}
}
functiongetProvince(){//獲取所有省
request=createRequest();
if(request==null){
alert("Unabletocreaterequest");
return;
}
varurl="getDetails.php?ID=0";//ID=0時傳遞至PHP時讓其獲取所有省
request.open("GET",url,true);
request.onreadystatechange=displayProvince;//設置回調函數
request.send(null);//發送請求
}
functiongetCity(id){//獲取省對應的市
request=createRequest();
if(request==null){
alert("Unabletocreaterequest");
return;
}
varurl="getDetails.php?ID="+escape(id);
request.open("GET",url,true);
request.onreadystatechange=displayCity;
request.send(null);
}
functiongetCounty(id){//獲取市對應的區
request=createRequest();
if(request==null){
alert("Unabletocreaterequest");
return;
}
varurl="getDetails.php?ID="+escape(id);
request.open("GET",url,true);
request.onreadystatechange=displayCounty;
request.send(null);
}
functiondisplayProvince(){//將獲取的數據動態增加至select
if(request.readyState==4){
if(request.status==200){
vara=newArray;
varb=request.responseText;//將PHP返回的數據賦值給b
a=b.split(",");//通過","將這一數據保存在數組a中
document.getElementById("sheng").length=1;
varobj=document.getElementById("sheng');
for(i=0;i
obj.options.add(newOption(a[i],i+1));//動態生成OPTION加到select中,第一個參數為Text,第二個參數為Value值.
}
}
}
functiondisplayCity(){//將獲取的數據動態增加至select
if(request.readyState==4){
if(request.status==200){
vara=newArray;
varb=request.responseText;
a=b.split(",");
document.getElementById("shi").length=1;//重新選擇
document.getElementById("xian").length=1;//重新選擇
if(document.getElementById("sheng").value!="province"){
varobj=document.getElementById('shi');
for(i=0;i
obj.options.add(newOption(a[i],document.getElementById("sheng").value*100+i+1));//ocument.getElementById("sheng").value*100+i+1對應的是市的ID。
}
}
}
}
functiondisplayCounty(){//將獲取的數據增加至select
if(request.readyState==4){
if(request.status==200){
vara=newArray;
varb=request.responseText;
a=b.split(",");
document.getElementById("xian").length=1;
if(document.getElementById("sheng").value!="province"&&document.getElementById("shi").value!="city"){
varobj=document.getElementById('xian');
for(i=0;i
obj.options.add(newOption(a[i],i+1001));
}
}
}
}
getDetails.php代碼:
<?php
header("Content-Type:text/html;charset=gb2312");
$conn=newCOM("ADODB.Connection")ordie("CannotstartADO");
$connstr="Provider=SQLOLEDB;PersistSecurityInfo=False;UserID=root;Password=123456;InitialCatalog=area;DataSource=localhost";
if($_REQUEST['ID']==0){//獲得省列表
$conn->Open($connstr);//建立資料庫連接
$sqlstr="selectnamefromProvince";//設置查詢字元串
$rs=$conn->Execute($sqlstr);//執行查詢獲得結果
$num_cols=$rs->Fields->Count();//得到數據集列數
$Province=array();
$i=0;
while(!$rs->EOF){
$Province[$i]=$rs->Fields['name']->Value.",";
$rs->MoveNext();
$i++;
}
foreach($Provinceas$val)
echo$val;
$conn->Close();
$rs=null;
$conn=null;
}
if($_REQUEST['ID']>0&&$_REQUEST['ID']<35){//獲得省對應的市列表
$conn->Open($connstr);//建立資料庫連接
$sqlstr="selectnamefromCitywherecid=".$_REQUEST['ID'];//設置查詢字元串
$rs=$conn->Execute($sqlstr);//執行查詢獲得結果
$num_cols=$rs->Fields->Count();//得到數據集列數
$City=array();
$i=0;
while(!$rs->EOF){
$City[$i]=$rs->Fields['name']->Value.",";
$rs->MoveNext();
$i++;
}
foreach($Cityas$val)
echo$val;
$conn->Close();
$rs=null;
$conn=null;
}
if($_REQUEST['ID']>100){//獲得省市對應的縣列表
$conn->Open($connstr);//建立資料庫連接
$sqlstr="selectnamefromCountywherecid=".$_REQUEST['ID'];//設置查詢字元串
$rs=$conn->Execute($sqlstr);//執行查詢獲得結果
$num_cols=$rs->Fields->Count();//得到數據集列數
$County=array();
$i=0;
while(!$rs->EOF){
$County[$i]=$rs->Fields['name']->Value.",";
$rs->MoveNext();
$i++;
}
foreach($Countyas$val)
echo$val;
$conn->Close();
$rs=null;
$conn=null;
}
?>
資料庫設計,表格Province表,City表,County表。
要求:Province表需要id和name,id建議從1至34,例如北京id為1,廣東id為2,以此類推;
City表需要id,name和cid,id為cid*100+1,cid為該市的上級,例如深圳的上級為廣東省,cid為2的話,深圳的id就是201,以此類推。
County表需要id,name和cid,因為是三級的關系,id可以隨意,建議從10001開始自增。cid為所在上級,例如寶安區的cid為201,龍崗區的cid也為201;
截圖:
HTML效果:
3. php + mysql + ajax亂碼問題。。。。
在傳遞參數和接收值的時候,用escape編輯一下就不會亂碼了
4. PHP+ajax+mysql實現省市縣三級聯動
在html頁的body標簽內添加三個select選項,分別用於顯示省、市、區
5. 用php+ajax+mysql如何做到在文本框中輸入查詢條件的同時搜索出不同的結果然後在頁面動態顯示。
利用jquery的ajax封裝操作會簡單許多。利用keyup或者keydown去觸發事件,文本框中的數據傳遞至後台匹配查詢,再return 回來。
6. php+mysql+ajax亂碼。。。
如果資料庫的字元集設置的是gb2312,其餘的編碼也需要是gb2312,
這個看起來像是最後一個php文件編碼不對造成的,
可以考慮直接請求一下最後一個php文件,看看返回是不是正確,
順便看一下返回的字元集是是什麼的,
最後能在指定對應的Html也是gb2312的。
7. php+mysql+jquery ajax怎麼實現無限下拉載入
這里在Load事件里向頁面注冊了一段JS,AjaxPagerCallBack方法做兩個操作,把自己表現的數據放入自己在客戶端生成的DIV容器里,即id為this.UniqueID.Replace('$','_')的div,ClientID好像也可以!哈,一時糊塗!第二步就是把分頁數據放到id為Info.ContainID的div中,Info對象下面會說到。
8. PHP + ajax + Mysql的原理是怎麼樣的
AJAX就是一種網頁和後台伺服器交流的協議,一個簡單的AJAX發送代碼
$.post{
'伺服器的網址',
'{data:'這里是要發送的數據'}',
function( return ){}{
// return 是後台伺服器接收到你網頁發的數據後返回的數據
}
}
PHP的echo輸出的結果就是返回網頁的return數據,格式是直接做返回值
PHP要返回數組就要用json封裝,代碼是 json_encde(數組);之後網頁接受的是json格式的字元串,要自己轉換為json數組。
9. ajax PHP MYSQL 實時傳值到頁面不需要刷新 類似微博的關注、取消關注類似的這個功能怎麼實現
用jquery 很簡單
假設數據在資料庫類 1表示關注 0表示未關注
function set(){
var status=$('#abc').attr('status');
$.ajax({
type : 'POST', // 提交類型
cache : false,
url : "", 文件路徑
data : "status="+status, 參數
success:function(data){
if(status==1){
$('#abc').val(『取消關注』);
$('#abc').attr('status','0');
}
$('#abc').val(『關注』);
$('#abc').attr('status','1');
}
});
}
php 文件里 用$_POST['status'] 接收值 然後修改資料庫
html
<input type='button' value='關注' id='abc' onclick='set()' status=『1』 >
順便說一句 上邊哪位仁兄說的對 有時間還是要自己學習一下 Ajax 很重要
10. ajax+mysql+php這樣的項目包一般要用什麼開發軟體打開
編輯器看個人喜好,一般用的比較多的是notepad++或者sublime,phpstorm等。
集成環境推薦phpstudy或者wamp server,都是集成了apache、mysql、php環境。ajax是基於javascript,不需要集成環境即可運行。