我在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用户指南中的路线指南.
我的数据库中有以下表格.这些表格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) 从变量值中减去字段值的正确语法是什么?
例:
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)
它是否正确?因为我得到了错误的结果.
例如,如果我在模型中运行一个查询:
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
我知道我可以使用连接查询,但这根本不是重点,因为我有很多需要拆分的查询
如果在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(或文件名)的名称?
我有一个功能
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)
看了一些例子,却无法得到所需要的东西
我想一起使用codeigniter和smarty.我想使用html文件而不是smartign的codeigniter的.tpl.php文件.这是可能的,或者我怎么能这样做.我已经搜索了很多并找到了一些例子,但是没有一些按照我的要求工作.
我有一个使用CI会话类的CI应用程序.这是我遇到问题的过程:
等等
这在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) 我正在使用正则表达式来验证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\.&%\$\-]+)*@)*(\.){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\.\,\?\'\\\+&%\$#\=~_\-]+))*$/";
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\.&%\$\-]+)*@)*(\.){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\.\,\?\'\\\+&%\$#\=~_\-]+))*$/";
$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) 我一直在与Codeigniter建立关系数据库,发现DataMapper对于严肃的项目来说是无用的.Codeigniter的活动记录是无用的,因为它不提供多对多或一对多的方法.DataMapper速度慢且不可配置!
这似乎是社区的共识.你建议在php中使用纯mysql来执行多对多和一对多的操作吗?或者你认为我错了!请随时告诉我.我的问题是,作为专业的网页设计师,您使用什么来建立数据库?