在结账时我调用一个更新数据库出勤率并计算小时数的函数(使用Codeigniter)
public function updateAttendance($data,$id)
{
date_default_timezone_set('Asia/Karachi');
$attendance=array(
'check_in'=> $data['check_in'],
'check_out'=> $data['check_out']
);
$this->db->WHERE('id',$id)->update('attendance',$attendance);
$this->db->query('UPDATE attendance SET hours=(HOUR(TIMEDIFF(check_out,check_in))-1) WHERE DATE(date)=\''.date('Y-m-d').'\' and employee_id='.$id);
return true;
}
Run Code Online (Sandbox Code Playgroud)
我通过员工ID获取我的出勤率,并在员工的个人资料中呈现这样的视图.
问题是我的小时计算错误,可能是由于我的查询.是否有查询修复,或者我必须以时间格式保持时间差异,然后在月末添加所有这些,然后从中获取数小时.
我正在渲染下面的Property Detail页面(可以在这里访问)

我有一个图像滑块和一个360图像查看器.目前,用户手动上传两种类型的图像,即来自一个界面的普通图像和来自其他界面的360图像.我检查属性是否有360个图像并使用全景查看器显示它们.
我使用以下Controller上传360图像,类似于上传普通图像.
public function upload_360_images()
{
if($this->session->userdata['id'] && $this->session->userdata['type']=='user')
{
if($_FILES)
{
if(isset($_FILES['files'])){
$data['errors']= array();
$extensions = array("jpeg","jpg","png");
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
$file_name = $key.$_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];
/*$file_ext=explode('.',$_FILES['image']['name'][$key]) ;
$file_ext=end($file_ext);*/
$i=1;
if($file_size > 7097152){
$data['errors'][$i]='File '.$i.' size must be less than 7 MB';
$i++;
}
$desired_dir="uploads";
if(empty($data['errors'])==true){
if(is_dir($desired_dir)==false){
mkdir("$desired_dir", 0700); // Create directory if it does not exist
}
if(is_dir("$desired_dir/".$file_name)==false){
move_uploaded_file($file_tmp,"uploads/".$file_name);
$this->post_model->add360Image('property_360_images',$file_name,$this->uri->segment(3));
}else{ //rename the file if another one exist
$new_dir="uploads/".$file_name.time(); …Run Code Online (Sandbox Code Playgroud) php codeigniter image 360-panorama-viewer 360-virtual-reality
我正在尝试在我的Controller中编写表单验证规则以提交更改密码表单,我也在其中检查旧密码.我从db获取旧密码(当前)并将其放在隐藏的输入字段中.
我的规则很简单,如下所示
$config=array(
array(
'field' => 'old_password',
'label' => 'oldpass',
'rules' => 'trim|required'
),
array(
'field' => 'conf_password',
'label' => 'connewpass',
'rules' => 'trim|required|matches[password]'
),
array(
'field' => 'password',
'label' => 'newpass',
'rules' => 'trim|required'
)
Run Code Online (Sandbox Code Playgroud)
我保存当前密码的表单中的隐藏输入字段就像
<input type="hidden" name="old_pass" value="<?php echo $user['password']?>">
Run Code Online (Sandbox Code Playgroud)
我知道规则中的匹配(字段名称)用于匹配两个字段值,但我遇到的问题是来自db的密码是md5加密的.如何加密来自表单的密码并与规则中的旧密码字段匹配?
我有一个随机长度的字符串数组。我想打印每个字符串的子字符串,但我希望字符长度固定,例如
for(i=0;i<length;i++)
{
source=(namesArray[i]['name']).substr(0,10);
}
Run Code Online (Sandbox Code Playgroud)
现在这段代码工作正常,它给了我最多 10 个字符,但对于那些少于 10 个字符的名称,我想为缺少的字符打印空格。是否可以 ?