【www.gdgbn.com--php与数据库】

ajax无刷新聊天室这里是用php+ ajax实现聊天室的

数据库结构sql:
CREATE TABLE `message` (
  `mid` int(20) NOT NULL auto_increment,
  `msg` varchar(255) NOT NULL,
  `user` varchar(50) NOT NULL,
  `time` int(10) NOT NULL,
  PRIMARY KEY  (`mid`),
  KEY `user` (`user`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=161 ;

CREATE TABLE `session` (
  `id` varchar(32) NOT NULL,
  `time` int(10) NOT NULL,
  `timenow` int(10) NOT NULL,
  `data` text NOT NULL,
  `ip` varchar(15) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

index.html文件代码.



 
  chat
 
 
 
 
 
 
  <script LANGUAGE="JavaScript" src="js/jquery.js"></script>
 
 
 
 
  Loading...
  
  


   昵称:"> 内容:
  
  

 
 
<script LANGUAGE="JavaScript">

</script>


聊天页面.chat.html

require_once("config.php");
//程序设计:℃冻番茄 QQ:7279915 E-mail:web@ye55.com [url=http://www.phpd.cn]www.phpd.cn[/url]
$fist=$db->getfirst("select `mid` from `message` order by `mid` desc ");
$mid=$fist["mid"]-40; //初始化聊天记录条数
$mid=$mid<=0?0:$mid;
$mid=0;
?>

 
 
 
  <script LANGUAGE="JavaScript">
 
  </script>
最后就是php页面了,用来处理用户发布的数据.

require_once("config.php");
////程序设计:℃冻番茄 QQ:7279915
//发信息
if($_GET["act"]=="send"){
 $msg=$_POST["msg"];
 $user=$_POST["user"];
 if(empty($msg) || empty($user)){
  $return["msg"]="聊天内容或昵称不能为空";
 }else{
  $time=time();
  if($db->insert("insert into `message` (`msg`,`user`,`time`) values ("$msg","$user","$time")")){
   $return["msg"]=true;
  }else{
   $return["msg"]="err";
  }
 }
 echo json_encode($return);
}elseif($_GET["act"]=="display"){
 if(isset($_POST["mid"])){
  $s=" where `mid`>"".$_POST["mid"]."" ";
 }else{
  $s="";
 }
 $sql="select * from `message` $s order by `mid`";
 $total=$db->getcount($sql);
 if($total==0){
  $a=0;
 }else{
  $result=$db->query($sql);
  while($row=$db->getarray($result)){
   $row["time1"]=date("Y-m-d H:i:s",$row["time"]);
   $a[]=$row;
   $b=$row["mid"];
  }
 }
 $ccc=array("list"=>$a,"mid"=>$b);
 echo json_encode($ccc);
}
?>

本文来源:http://www.gdgbn.com/jiaocheng/14558/