好的,我有一个mySQL值表.有些是积极的,有些是消极的.负面的人在桌子上面对他们.我正在使用Codeigniter.
我需要将它们全部加在一起,但是在负值之前,IGNORE.我只想总结数字,而不是将它们作为负数.
例如,这就是它目前的作用:-55 + -20 = 35
但我想要它做的是:-55 + -20 = 75
基本上我只想对值进行求和,而不管它们的正面或负面类型.
我怎样才能做到这一点?这是我的查询:
$this->db->select_sum('vat')
->from('accounts')->where_in('type', 'Expenses')
->where('date <=', $current_period)
->where('date >=', $previous_period);
Run Code Online (Sandbox Code Playgroud) 我正在为使用Codeigniter构建的自定义CMS编写标签系统,我正在尝试强制执行特定格式.
基本上,我需要将每个单词的第一个字母大写,除了以下内容,它应该是小写的:
此外,如果标签以上述之一开头,则应将其大写.
正确格式化标签的一些示例:
到目前为止我只有:
$tag = 'Lord of the Rings';
$tag = ucwords($tag);
$patterns = array('/A/', '/An/', '/The/', '/And/', '/Of/', '/But/', '/Or/', '/For/', '/Nor/', '/With/', '/On/', '/At/', '/To/', '/From/', '/By/' );
$lowercase = array('a', 'an', 'the', 'and', 'of', 'but', 'or', 'for', 'nor', 'with', 'on', 'at', 'to', 'from', 'by' );
$formatted_tag = preg_replace($patterns, $lowercase, $tag);
// capitalize first letter of string
$formatted_tag = ucfirst($formatted_tag);
echo $formatted_tag;
Run Code Online (Sandbox Code Playgroud)
这会产生指环王的正确结果,但我怎样才能避免重复阵列?当我添加新单词时,将它们匹配起来很乏味.
我确定有一些词我应该被包含在内,是否有我可以使用的现有功能或类?
我想在我的视图中设置我的会话数据但有条件,所以在我的视图的javascript部分我有
$('#demo').click(function(){
$this->session->set_userdata('sample',10);
});
Run Code Online (Sandbox Code Playgroud)
但是,每当我刷新页面,而不点击按钮,会话数据,"样本"被设置,有没有办法,我可以在我点击按钮后获得此会话数据集?
谢谢
按照标题,有没有人实现这一目标?将此库包含在codeigniter(v2.1.2)中的最佳做法是什么?
我知道可以通过像任何其他PHP应用程序一样简单地使用include/require语句来完成,但是一旦完成,这个项目将被移交给多个开发人员,我想确保使用CI开发人员想要的设计模式正确构建它.
我在测试控制器中尝试了以下内容
public function index(){
$this->load->library('phpseclib0.3.0/Net/SFTP');
}
Run Code Online (Sandbox Code Playgroud)
不过我受到了欢迎:
不存在的类:SFTP
phpseclib取自这里.
我试图同时增加java脚本变量和php变量的值,所以在我的java脚本中我做:
<script>
<?php $i=1;?>
for(var i=1;i<=5;i++){
var abc = $('<input>').attr('name','demo'+i).attr('value','<?php echo set_value('demo'.$i++));
<?php echo $i; ?>
}
</script>
Run Code Online (Sandbox Code Playgroud)
但是,每当$ i echo`ed的值为2时,逻辑上它应该增加java脚本循环迭代次数和echo 5的次数,但不是,我做错了什么?
2场景:
header("Location: login/$username");
Run Code Online (Sandbox Code Playgroud)
给我
http://localhost/login/login/mylogin
Run Code Online (Sandbox Code Playgroud)
和
header("Location: /$username");
Run Code Online (Sandbox Code Playgroud)
给我:
http://localhost/mylogin
Run Code Online (Sandbox Code Playgroud)
两者都错了.我想要http://localhost/login/mylogin
怎么了?
最近我开始使用Codeigniter框架来开发RESTFul移动应用程序的Web服务.
当我在网站和youtube上查看各种教程时,我发现a的概念Model在PHP应用程序上下文中的使用方式不同.
有何不同?
好吧,正如我一直认为模型类应该是这样的,
Cat.php
<?php
class Cat {
// Class variables
private $colour;
public __construct() {
$colour = 'Brown';
}
// Getters and Setters
public function getColour() {
return $this->colour;
}
public function setColour($newColour) {
$this->colour = $newColour;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
但是,在通过互联网搜索好的教程时,我发现人们只是使用可以访问数据库的数据并将其返回的数据Controller.
我没有看到任何人在Model中编写普通类(如果你是Java人员,我们称之为POJO)
现在,我在阅读和观看这些教程后所要求的是,
在PHP应用程序框架的上下文中,Model类是数据库的连接器,它在查询时返回与应用程序相关的数据.用SQL语言我们称之为,
CRUD功能
在基于Codeigniter的框架创建的Web应用程序中,MVC模式用于设计应用程序.Model类是具有将应用程序连接到数据库并返回数据的函数,并且有助于在应用程序的数据库上执行所有CRUD操作.
问题1)如果用户名和/或密码不正确,我已经设置了注册/登录区域并验证了所有内容(包括空字段)并在显示错误消息时遇到了问题.目前,如果字段留空,我可以收到显示的错误消息,但是在提交页面时,如果用户信息正确或不正确,则会重定向到"私人页面".这是我目前的代码:
问题1(已解决):
控制器:
//This method will have the credentials validation
public function credentials_validation() {
$data['error'] ="Invalid Username or Password";
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean|callback_username_check');
$this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_password_check');
if($this->form_validation->run() == FALSE)
{
//Field validation failed. User redirected to login page
$this->index();
}else{
$this->load->model('register_model');
if($query = $this->register_model->validate()) {
$this->load->model('news_model');
$data = array('news' => $this->news_model->getArticle());
$data['title'] = 'Admin | Home';
$data['heading'] = 'News Articles';
$data['main_content'] = 'admin/news';
$this->load->view('include/template', $data);
}else {
$this->load->view('login',$data);
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题2)新闻文章页面只加载1篇文章,网址显示班级名称.
新闻控制器:
class News extends CI_Controller {
public function …Run Code Online (Sandbox Code Playgroud) 基本上,我要问的是:$config['sess_use_database'] = TRUE;即使是更安全$config['sess_encrypt_cookie'] = TRUE;吗?
我一直在博客,Stackoverflow帖子,甚至是声称$config['sess_use_database'] = TRUE;更安全的CI Docs上磕磕绊绊,但似乎user_data存储(在cookie或数据库中)位置从安全角度来看如果cookie无论如何都是加密的并不重要.
如果您设置$config['sess_encrypt_cookie'] = FALSE;并检查cookie,无论其值是多少,都会$config['sess_use_database']在cookie的末尾粘贴一个(似乎是md5)哈希 - 这是一个例子:
a:4{
s:10:"session_id";
s:32:"a2caac03fc72d709ac280540a09d8ed7";
s:10:"ip_address";
s:9:"127.0.0.1";
s:10:"user_agent";
s:100:"Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.14 Safari/537.4";
s:13:"last_activity";
i:1347228760;
}7aa8ebe3fc462bd86c0c0544a969cbda
Run Code Online (Sandbox Code Playgroud)
有什么意义7aa8ebe3fc462bd86c0c0544a969cbda?它从哪里来的?
我遇到了一个小问题,我只是在寻找有关最佳实践的建议.
我有一个脚本从外部网页获取一些数据.有时这些数据不完整.
例如我可能有
$array=array('name'=>'Bob Smith','address'=>array('0'=>'My address'),'phone'=>'000000');
Run Code Online (Sandbox Code Playgroud)
然后我将此数据设置为另一个数组以插入到我的数据库中.例如
$data=array('name'=>$array['name'],'address'=>$array['address']['0'],'phone'=>$array['phone']);
Run Code Online (Sandbox Code Playgroud)
但是,如果没有找到地址,则不设置$ array ['address'] ['0'],因此使用它创建第二个数组会在CodeIgniter中创建错误.虽然在正常的程序编码中没有显示错误,但我认为CI有这个错误表明解决它是一种最佳实践.
所以..我假设解决这个问题的最好方法是使用条件并检查$ array ['address'] ['0']是否在添加到$ data数组之前设置.那是对的吗?如果不是,则将null插入数据库.
嵌套问题是当我从数据库获取数据以显示它时.我想爆炸地址的行并输出它们,但如果没有再次设置,则codeigniter会抛出错误.同样,通过条件语句可以轻松避免.
我的问题主要在于处理,插入和输出数据,其中有许多变量可能会或可能不会设置,我需要看似有负载和条件语句的负载.
我认为实际上这不是问题,但我喜欢我的代码尽可能短而简洁.我错过了什么吗?
干杯
codeigniter ×10
php ×7
javascript ×2
session ×2
conditional ×1
cookies ×1
jquery ×1
login ×1
model ×1
mysql ×1
phpseclib ×1
redirect ×1
tags ×1
validation ×1