标签: codeigniter

Codeigniter路由问题

我在codeigniter中自定义我的路由,这是我的routes.php的示例:

$route['default_controller'] = 'maincontroller/main';                                                                                                                                                                                    
$route['404_override'] = '';     

$route['test'] = 'maincontroller/test';
Run Code Online (Sandbox Code Playgroud)

这是maincontroller类:

class Maincontroller extends CI_Controller  
{                 
    public function __construct( )
    {
        parent::__construct( ); 
        $this->load->library('session');  
        $this->init( ); 
    }


    public function main( )         
    {       
        echo "in main";
    } 

    public function test( )
    {
        echo "test";
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我在浏览器中访问此URL时:/ test,我得到服务器的404页面未找到错误.

我不知道我做错了什么,我按照codeigniter用户指南中的路线指南.

php url uri routes codeigniter

1
推荐指数
1
解决办法
8746
查看次数

Codeigniter:从三个表生成学生成绩单

我的数据库中有以下表格.这些表格midterm和finalterm包含学生的痕迹.

在此输入图像描述

现在我想在单页中显示所有学生的标记表,如下所示:

在此输入图像描述

我知道如何在单个表中查询但在这种情况下我遇到问题,因为有三个表.

我正在使用Codeigniter,请您帮我查看我的模型和视图文件中的代码?

提前致谢 :)

这是我的控制器:

         $this->load->model('Mod_student');
     $data['records1']= $this->Mod_student->check1();
         $this->load->view('view_student',$data);
Run Code Online (Sandbox Code Playgroud)

更新的部分

这是我的看法:

    <?php if(count($records1) > 0) { ?>

      <?php foreach ($records1 as $row){ ?>



   <table>
   <tr> <td><?php echo $row['StudentName']; ?></td></tr>

     <tr>

      <td><?php $midDate   =   explode(',',$row['MidDate']);
     foreach($midDate as $md)
         {
         echo $md;
         echo '<br />'  ;
         }
    ?>
         </td> 

       <td><?php $midDate   =   explode(',',$row['MidSubject']);
     foreach($midDate as $md)
         {
         echo $md;
         echo '<br />'  ;
         }
    ?>
      </td> 

       <td><?php $midDate   =   explode(',',$row['MidMarks']);
     foreach($midDate as $md)
         {
         echo $md; …
Run Code Online (Sandbox Code Playgroud)

mysql codeigniter codeigniter-2

1
推荐指数
1
解决办法
2403
查看次数

更新字段从变量中减去

从变量值中减去字段值的正确语法是什么?

例:

field1 = 100
variable1 = 10
Run Code Online (Sandbox Code Playgroud)

我想使用codeigniter的活动记录从field1中减去variable1

我目前的代码如下:

$this->db->set('volume', 'volume'-$r['quantity'], FALSE)
                    ->where('code',$r['ingredient_id'])
                    ->update('tbl_ingredients');
volume is the field
$r['quantity] is the variable
Run Code Online (Sandbox Code Playgroud)

它是否正确?因为我得到了错误的结果.

php mysql records codeigniter

1
推荐指数
1
解决办法
2464
查看次数

在模型中运行2个查询(codeigniter)?

例如,如果我在模型中运行一个查询:

public function list_users() { 
       $q = "SELECT user_id, username FROM users";
       return $q->result_array();
}
Run Code Online (Sandbox Code Playgroud)

现在,要列出该用户的帖子,我需要在此函数中引用它的id:

   public function list_posts() { 
           $q = "SELECT post_id, post_title, post_content FROM posts 
                 WHERE user_id = what??";
           return $q->result_array();
   }
Run Code Online (Sandbox Code Playgroud)

好的,这两个功能都在Model中.现在,如何在list_posts()中使用list_users()中的RESULT.请记住,我需要传递ID的ARRAY,并且仅用于list_users()的特定id,它也会返回ARRAY

我知道我可以使用连接查询,但这根本不是重点,因为我有很多需要拆分的查询

php model-view-controller codeigniter codeigniter-2

1
推荐指数
1
解决办法
3667
查看次数

获取Codeigniter中数据库错误的实际行号(或文件名)

如果在codeigniter中你的sql语句出错,你会收到如下信息: -

 A Database Error Occurred

Error Number: 1096

- some sql -

Filename: \system\database\DB_driver.php

Line Number: 334
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但是当你为一个页面运行大量语句时,有助于知道哪一行代码生成了查询.

如何获取生成查询的model和method(或文件名)的名称?

codeigniter codeigniter-2

1
推荐指数
1
解决办法
1299
查看次数

正则表达式在PHP中无法正常工作

可能重复:
php - 正则表达式 - PCRE不支持\ L,\ l,\ N,\ P,

我有一个功能

public function valid_city_state($data)
{
    $data = trim($data);

    if(!$data)
    {
        return TRUE;            
    }

    $valid = preg_match("/^[a-zA-Z\u0080-\u024F\s\/\-\)\(\`\.\"\']+$/",trim($data));

    if(!$valid)
    {
        $this->form_validation->set_message('valid_city_state', 'Please enter a valid %s.');
        return FALSE;           
    }
    else
    {
        return TRUE;
    }       
}
Run Code Online (Sandbox Code Playgroud)

它有正则表达式

$valid = preg_match("/^[a-zA-Z\u0080-\u024F\s\/\-\)\(\`\.\"\']+$/",trim($data));
Run Code Online (Sandbox Code Playgroud)

执行时,它会出现以下错误

A PHP Error was encountered

Severity: Warning

Message: preg_match() [function.preg-match]: Compilation failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 9

Filename: home/auth.php

Line Number: 1632
Run Code Online (Sandbox Code Playgroud)

看了一些例子,却无法得到所需要的东西

php …

php validation codeigniter

1
推荐指数
1
解决办法
3987
查看次数

使用smarty与codeigniter

我想一起使用codeigniter和smarty.我想使用html文件而不是smartign的codeigniter的.tpl.php文件.这是可能的,或者我怎么能这样做.我已经搜索了很多并找到了一些例子,但是没有一些按照我的要求工作.

php codeigniter smarty

1
推荐指数
1
解决办法
1428
查看次数

Internet Explorer中的Codeigniter会话问题

我有一个使用CI会话类的CI应用程序.这是我遇到问题的过程:

  1. 用户加载页面
  2. Ajax请求从DB获取记录
  3. 使用该记录的ID设置userdata变量并执行各种DB内容
  4. 用户刷新页面
  5. Ajax请求根据前一条记录的会话变量从DB获取记录(同一条记录不能连续两次传回)
  6. 将userdata变量重新设置为新记录的ID

等等

这在chrome和FF中完美运行.但显然当我来IE浏览时 - 不起作用.

执行ajax请求并检索第一条记录.此时已设置会话变量.用户刷新但仍保留相同的记录.

此时如果我清除会话cookie并刷新新记录则被检索.

我试过改变:

$config['sess_cookie_name']     = 'ci_session';
Run Code Online (Sandbox Code Playgroud)

至

$config['sess_cookie_name']     = 'cisession';
Run Code Online (Sandbox Code Playgroud)

就像我在另一篇文章中看到的但没有运气.还尝试使用DB进行会话存储,但仍然没有运气.

这是问题页面:http://givestream.co.uk/stream

在chrome或FF中加载它并刷新或点击"下一步"按钮,你会看到它检索一个新的慈善机构.在IE中尝试这个,除非你清除会话cookie,否则它不起作用.

JS函数获取记录:

function get_matches(){
    var charity;
    var user_total;
    jQuery.get("/stream/get_charity/", function(data){

        charity = data.charity;
        user_total = charity.user_totals;

        /** CHANGE URL **/

        if (history.pushState) {
            window.history.pushState("object or string", "Title", "/stream/"+charity.slug);
        }

        /*****************/

        // can user accept?
        if(charity.can_donate == 0){
            // No
            jQuery('.alert-message').show();
        } else{
            jQuery('.alert-message').hide();
        }

        // Charity Binding
        jQuery('p#char_modal_description').html(charity.description);
        jQuery('.char_more_link').attr('id', charity.id);
        jQuery('h1#char_name').html(charity.char_name);
        jQuery('h2#char_modal_header').html(charity.char_name);
        jQuery('p#char_desc').html(charity.description);
        jQuery('#website').html('<label>Website</label><a …
Run Code Online (Sandbox Code Playgroud)

php session internet-explorer codeigniter

1
推荐指数
1
解决办法
7107
查看次数

正则表达式验证URL在PHP中无法正常工作

我正在使用正则表达式来验证URL.这个表达式在JavaScript中非常有效,但是在PHP中它给了我这个错误

A PHP Error was encountered

Severity: Warning

Message: preg_match() [function.preg-match]: Unknown modifier '('

Filename: home/auth.php

Line Number: 1596
A PHP Error was encountered

Severity: Warning

Message: preg_match() [function.preg-match]: Unknown modifier '('

Filename: home/auth.php

Line Number: 1601
Run Code Online (Sandbox Code Playgroud)

这是我的表达

$pattern ="/^(http|https|ftp)\:\/\/www\.([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&amp;%\$\-]+)*@)*(\.){1}((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&amp;%\$#\=~_\-]+))*$/";
Run Code Online (Sandbox Code Playgroud)

这是php函数

public function valid_url($data)
{
    $data = trim($data);

    if(!$data)
    {
        return TRUE;            
    }

    $pattern ="/^(http|https|ftp)\:\/\/www\.([a-zA-Z0-9\.\-]+(\:[a-zA-Z0-9\.&amp;%\$\-]+)*@)*(\.){1}((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])|([a-zA-Z0-9\-]+\.)*[a-zA-Z0-9\-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\?\'\\\+&amp;%\$#\=~_\-]+))*$/";
    $valid = preg_match($pattern,$data);

    if(!$valid)
    {
        $data = "http://".$data;
        $valid = preg_match($pattern,$data);
    }

    if(!$valid)
    {
        $this->form_validation->set_message('valid_url', 'Please enter a valid URL.');
        return FALSE;           
    }
    else
    { …
Run Code Online (Sandbox Code Playgroud)

php regex codeigniter

1
推荐指数
1
解决办法
697
查看次数

CodeIgniter DataMapper会变慢吗?

我一直在与Codeigniter建立关系数据库,发现DataMapper对于严肃的项目来说是无用的.Codeigniter的活动记录是无用的,因为它不提供多对多或一对多的方法.DataMapper速度慢且不可配置!

  1. 它在您查询时将整个表加载到对象.
  2. 当您第二次放入"A"时,第二次放入"A"时,您将在数据库中有2个As.它没有像SQL这样的忽略选项.你必须查询一个项目是否存在,如果没有,则插入它.
  3. 他们为此做了大量编码,但对于建立庞大的数据库似乎没有任何好处
  4. 查询速度不快.

这似乎是社区的共识.你建议在php中使用纯mysql来执行多对多和一对多的操作吗?或者你认为我错了!请随时告诉我.我的问题是,作为专业的网页设计师,您使用什么来建立数据库?

php mysql codeigniter codeigniter-datamapper

1
推荐指数
1
解决办法
1864
查看次数