标签: codeigniter

PHP Codeigniter:下拉菜单中的set_value

我有以下观点,但set_value如果没有它默认为请选择,我该如何申请?

<label for="add_fields_type">Type: </label>
<select name="add_fields_type" id="add_fields_type">
    <option value="">Please Select</option>
    <option value="<?php echo set_value('input'); ?>">Input</option>
    <option value="<?php echo set_value('textarea'); ?>">Text Area</option>
    <option value="<?php echo set_value('radiobutton'); ?>">Radio Button</option>
    <option value="<?php echo set_value('checkbox'); ?>">Check Box</option>
</select>
Run Code Online (Sandbox Code Playgroud)

更新:

视图:

<label for="add_fields_placeholder">Placeholder: </label>
    <select name="add_fields_placeholder" id="add_fields_placeholder">
        <option value="">Please Select</option>
        <option value="<?php echo set_value('yes'<?php echo set_select('add_fields_placeholder','yes', ( !empty($placeholderType) && $placeholderType == "yes" ? TRUE : FALSE ));?>">Yes</option>
        <option value="<?php echo set_value('no' <?php echo set_select('add_fields_placeholder','no', ( !empty($placeholderType) && $placeholderType == "no" ? TRUE : …
Run Code Online (Sandbox Code Playgroud)

php codeigniter

7
推荐指数
2
解决办法
4万
查看次数

CodeIgniter HMVC扩展了MX_Controller,无法正确使用get_instance

我在/ application/core中有一个控制器

/application/core/CMS_Controller.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

require APPPATH."third_party/MX/Controller.php";

class CMS_Controller extends MX_Controller {

    public function __construct() {
        parent::__construct();
    }

    public function show_something() {
        echo "something shown";
    }
} 
Run Code Online (Sandbox Code Playgroud)

我在模块中有另一个控制器(/modules/my_module/controllers/controller.php),它从CMS_Controller扩展而来

/modules/my_module/controllers/controller.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Controller extends CMS_Controller {

    public function index() {
        $this->load->view('view');
    }
} 
Run Code Online (Sandbox Code Playgroud)

并且,在view.php(/modules/my_module/views/view.php)中我这样做: /modules/my_module/views/view.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 $ci =& get_instance();
 echo $ci->show_something();
?> 
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

致命错误:在第3行的/home/gofrendi/public_html/No-CMS/modules/my_module/views/view.php中调用未定义的方法CI :: …

php codeigniter hmvc

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

CodeIgniter Active Record与常规查询

目前我使用CodeIgniter进行常规查询,即:

$sql = "
    SELECT *
    FROM my_table
    WHERE item_id > 1
";    
$q = $this->db->query($sql);
Run Code Online (Sandbox Code Playgroud)

我已经开始研究ActiveRecord,它确实看起来不错,并且无论使用哪个数据库驱动程序都具有构建查询的优势 - 但是,我通常严格使用每个项目的单个数据库类型,所以这不是真正的对我有利.

我发现在我看来,常规查询(正如我在我的示例中所示)更易读,更容易维护,因此我目前正在考虑保持常规查询.

除了上面提到的原因,我应该选择哪个,以及原因是什么?

谢谢

database activerecord codeigniter

7
推荐指数
4
解决办法
1万
查看次数

Regexp过滤表

好吧,我有一个表,由一些开源软件输出,但它不会以实际的表格格式输出,例如

<table> 
  <thead>
     <td>Heading</td>
  <thead>
  <tbody>
    <tr>
       <td>Content</td>
    </tr>
  <tbody>
</table
Run Code Online (Sandbox Code Playgroud)

相反,开发软件的人决定输出这样的表是一个好主意

+------------+-------------+-------+-------------+------------+---------------+----------+
| HEADING 1  | HEADING 2   | ETC   | ANOTHER     | HEADING3   | HEADING4     | SML |
+------------+-------------+-------+-------------+------------+---------------+----------+
| content   | more content | cont  | More more   | content    | content 2.0  | litl |
| content   | more content | cont  | More more   | content    | content 2.0  | litl |
| content   | more content | cont  | More more   | content    | …
Run Code Online (Sandbox Code Playgroud)

php ruby regex codeigniter ruby-on-rails-3

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

Codeigniter:在Windows XP中将错误显示为"无法选择指定的数据库:项目"

我正在使用Windows XP并使用EasyPHP作为服务器.我已将Codeigniter与TankAuth集成在一起.但是,当我尝试打开我的赋值文件夹时,它显示错误如下:

Unable to select the specified database: project

Filename: C:\Program Files\EasyPHP-12.1\www\assignment\system\database\DB_driver.php

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

我的数据库.php中的代码如下"

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'root123';
$db['default']['database'] = 'project';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
Run Code Online (Sandbox Code Playgroud)

我检查了我的database.php,里面我有数据库名称'project'.

我尝试使用主机名作为'localhost'和'127.0.0.1',但没有一个工作.

我已将默认控制器设置为'auth'即TankAuth的默认控制器.

并在'auth'控制器中的构造中初始化了'数据库'库.

刚才我使用Wamp Server尝试了同样的事情.但是,得到了相同的结果.

在某处我读到我应该尝试制作$db['default']['pconnect']和

$db['default']['db_debug']到FALSE.但它没有用. …

wamp codeigniter easyphp wampserver tankauth

7
推荐指数
2
解决办法
3万
查看次数

具有数千个插入的Codeigniter的insert_batch()缺少记录

我正在使用insert_batch()大量插入10000多行到数据库中的表.我正在进行一些测试,我注意到有时所有10.000多行都被正确插入,但在某些情况下我会错过表格总数中的100多行.

我所拥有的记录中的字段数据是可以的,因为我为每个测试使用相同的数据,而且大多数时候我都没有问题.例如,我尝试了20次将相同的数据插入到我的数据库中,并且19次所有行都将正确插入,但在这一次我将错过100行或更多行.

功能insert_batch()如下:

protected function save_sms_to_database() {
    //insert_Batch
    $datestring = "%Y-%m-%d %h:%m:%s";
    $time = time();
    $datetime = mdate($datestring, $time);

    $this->date_sent = $datetime;

    foreach ($this->destinations as $k => $v) {
        $sms_data[$k] = array(
            'campaign_id' => $this->campaign_id,
            'sender_id' => $this->from,
            'destination' => $v,
            'token' => md5(time() . 'smstoken' . rand(1, 99999999999)),
            'message' => $this->body,
            'unicode' => $this->unicode,
            'long' => $this->longsms,
            'credit_cost' => $this->eachMsgCreditCost,
            'date_sent' => $this->date_sent,
            'deleted' => 0,
            'status' => 1,
            'scheduled' => $this->scheduled,
        );
    }

    $this->ci->db->insert_batch('outgoingSMS', …
Run Code Online (Sandbox Code Playgroud)

php mysql codeigniter

7
推荐指数
1
解决办法
2万
查看次数

连接到Oracle:CodeIgniter与Laravel

我一直在为我正在进行的项目寻找一个PHP框架.其中一个主要要求是与数据库交互的简便方法.最初这必须是Oracle,但将来有可能切换到不同的数据库后端.因此,我希望能够编写尽可能与数据库无关的代码.

我最初倾向于CodeIgniter,主要是因为它支持Oracle(它包括为了利用Oracle自己的OCI8驱动程序而编写的驱动程序).

Laravel是我考虑过的另一种选择.它似乎是一个流行的选项,即使有一些以前的CodeIgniter用户(例如,请参阅此答案).但是,它的Oracle支持似乎非常有限; 据我所知,Laravel广泛使用PDO,但PDO for Oracle是实验性的,不推荐使用.

有一种简单的方法可以使用Laravel以数据库无关的方式连接到Oracle吗?

php oracle codeigniter laravel

7
推荐指数
2
解决办法
1万
查看次数

在php中替换Array中的Object

我有一个数组有多个对象(比如3个对象),每个对象有3个"键 - 值"对.

$PredefinedResult 是这样的:

[
    {
        "EffectiveStatusId":0,
        "EffectiveStatus":"abc",
        "RecordCount":0
    },
    {
        "EffectiveStatusId":0,
        "EffectiveStatus":"def",
        "RecordCount":0
    },
    {
        "EffectiveStatusId":0,
        "EffectiveStatus":"ghi",
        "RecordCount":0
    }
]
Run Code Online (Sandbox Code Playgroud)

我有另一个对象数组,其名称为$MainResult:

[
    {
        "EffectiveStatusId":1,
        "EffectiveStatus":"abc",
        "RecordCount":7
    },
    {
        "EffectiveStatusId":6,
        "EffectiveStatus":"def",
        "RecordCount":91
    }
]
Run Code Online (Sandbox Code Playgroud)

预期结果 :

我想用对象替换里面的类似$PredefinedResult对象,$MainResult并希望得到如下结果:

[
    {
        "EffectiveStatusId":1,
        "EffectiveStatus":"abc",
        "RecordCount":7
    },
    {
        "EffectiveStatusId":6,
        "EffectiveStatus":"def",
        "RecordCount":91
    },
    {
         "EffectiveStatusId":0,
         "EffectiveStatus":"ghi",
         "RecordCount":0
    }
]
Run Code Online (Sandbox Code Playgroud)

我尝试了什么:

我试过这个代码,但它没有给我想要的结果.

$FinalResult = array_replace($PredefineResult,$MainResult);
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我如何获得上面提到的预期结果?

php arrays codeigniter object

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

不允许您请求的操作.Codigniter

我正在尝试在codeigniter中创建一个简单的登录系统.当我点击我的按钮登录时,我收到一个错误:

不允许您请求的操作.

当我打开我的控制台时,我看到了这个:

POST http://localhost/PHP/PROJECT/CodeIgniter/403(禁止)

这是我的看法:

<body>
    <h1>LOG IN!</h1>
    <form action="" method="post">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username" >
        <label for="password">Password</label>
        <input type="password" id="password" name="password" >
        <br>
        <button id="btn_login" name="btn_login" >LOG IN!</button>
    </form>
    <div class="errors" ><?php echo validation_errors(); ?></div>
</body>
Run Code Online (Sandbox Code Playgroud)

这是我的模特:

<?php 
class User_model extends CI_Model {
    public $m_sUsername;
    public $m_sPassword;
    public $m_sEmail;
    public $m_sPicture;

    function __construct()
    {
        parent::__construct();
    }

    function get_user($username, $password)
    {
        $this->db->select("username","password");
        $this->db->from(user);
        $this->db->where('username',$username);
        $this->db->where('password',$password);
        $this->db->limit(1);
        $query = $this->db->get();
        return $query->num_rows();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

<?php

class …
Run Code Online (Sandbox Code Playgroud)

php authentication post codeigniter button

7
推荐指数
2
解决办法
2万
查看次数

STR_TO_DATE无法在我的查询中使用

我在数据库中有日期字段,有varchar数据类型.现在我必须将日期与当前日期进行比较,但由于数据类型(varchar)结果不正确.

我不想在数据库中更改数据类型,所以如何在codeigniter中查询?

在我的数据库中,日期的格式为30/11/2015

我目前的查询:

    //here vd is table field(one column).

    $cd = date('d/m/Y');//current date

    $this->db->where("date_format(STR_TO_DATE(vd, '%d/%m/%Y'),'%d/%m/%Y') >",$cd); //comparing date with current date
    $query =$this->db->get('warranty');
Run Code Online (Sandbox Code Playgroud)

通过使用上面的查询,它只是比较日期而不是月份和年份.因此它将返回那些日期大于今天日期的记录.

但正确的结果不会来......

php mysql codeigniter

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