我的第一个PHP系统—酒店管理系统总结

有去学习php的想法很久了,书也借了回来,但是拖延症老是不想去翻它
因为数据库要做一个课程设计,把心一横,趁这个机会给点压力自己学了吧
于是就诞生了这篇十分有纪念性的总结,或者说是对第一次写的php代码所犯错误的备忘。

//1、mysql相关函数由于较旧,浏览器会出现提示报错让你使用更新的连接数据库方法,可以在前面加“@”来屏蔽错误
//大神说最好的办法是使用封装了mysql方法的类来操作数据库
$sql_link=@mysql_connect('localhost:3306','hotel','123456',true)or die('连接数据库失败');
mysql_query("SET character_set_connection=utf8, character_set_results=utf8, character_set_client=binary", $sql_link);
mysql_select_db('hotel',$sql_link);

//2、获取当前时间避免用time(),而使用$_SERVER[REQUEST_TIME]获取当前请求时间

//3、使用jq的$.ajax或$.post方法时最好把控制程序的php代码整合放在一个单独的php文件内,再使用switch语句来实现模块化
if($_POST){
    if ($_POST["action"]) {
        switch ($_POST["action"]) {
            case 'check':
                checkBook();
                break;
            case 'book':
                bookRoom();
                break;
            default:
                break;
        }
    }
}

//4、将日期转化为时间戳可用strtotime()或者以下函数
function getUnixTime($str){
    // 将Y-m-d转化成unix时间戳
    $date=explode('-', $str);
    return mktime(0,0,0,$date[1],$date[2],$date[0]);
}

//5、使用array_column()可将二维数组的某一列转化为一维数组
//此项目内本人用意在于将数据库查询出来的二维数组提取出某一列下的所有数据,进行计算数组长度
$data1=array_column($data1,'room_id'); 

//6、数组输出一定要用print_r(),若使用echo会报错

//7、若出现setcookie()无效,在程序的开头加上ob_start()函数

//8、若要在php中传回一个数组在$.post中使用
<?php
    ...
    while($row=mysql_fetch_assoc($result)){
        $data[]=$row;
    }
    $data=array_column($data,'room_id');
    print_r(json_encode($data));
?>

$.post("ctrl.php",data,function(res){
    for(var i in res){
        console.log(res[i]);
    }
});

1215今天之前项目的客户忽然找来要加一个功能,然后我在大神的护航下,处理了这个小要求,好激动!!原来有好多我忽略的地方是需要注意的,姜还是老的辣~

  • 对于从页面或者从用户处获取过来的数值型数据,用intval()转换,防止数据中包含非数字的字符
$id = intval($_POST['goodId']);
  • 在公司用的框架中,modal跟controller有不同的任务,modal进行数据库查询等操作,把查询到的数据return给controller,然后由controller根据需求进行进一步的数据处理,再输出。
//这是某个模块的controller的一个函数片段
//$result数组中存放错误类型,错误内容和数据
//输出返回到js中,可以根据result数组中的错误类型等判断查询操作有没有出错,并对用户进行提醒。
$result = array('error'=>0,'content'=>'','data'=>'');
$id = intval($_POST['goodId']);
$goods=Model('goods');
$content=$goods->getContent($id);
$result['data']=$content;
die(json_encode($result));
  • 防止用户多次点击按钮导致重复提交请求,可做以下处理
$('.more-detail-btn').click(function(event) {
      event.preventDefault();
       $(this).attr('click','return false');
       $.post('ctrl.php',data,function(res){
          //...
          $('.more-detail-btn').removeAttr('click');   
       },'json');
});
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值