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,不需要集成环境即可运行。