2014-02-03 2 views
0

ОтветНеприятности с SQL Query с помощью CodeIgniter

* $ this-> db-> набор ('page_routes', 'PageId', $ NEWID); *

Должно быть

$ this-> db-> update ('page_routes', array ('pageid' => $ newid));

Я пытаюсь создать страницу, на которой вы можете отправить форму, и она обновляет значения в зависимости от того, что вы выбираете, я не вижу, что я делаю неправильно, но в какой-то момент я думаю, что ошибаюсь в отношении команды MySQL.

Идея заключается в том, что вы выбираете страницу (дружественное имя) в верхней опции-select, а внизу вы устанавливаете ID в значение другого идентификатора страницы.

Эффект, который он должен достичь, заключается в том, что пользователь может изменить изменение содержания, которое отображается на определенной странице.

Вопрос: По возвращению запроса, обновление работает, но ничего не изменилось в моей таблице page_routes

мой взгляд, значения берутся из базы данных, они заселяют правильно.

<form class="form-horizontal" action="<?php echo site_url('/view/updatepageid'); ?>" method="post"> 
<fieldset> 

<!-- Form Name --> 
<legend>Form Name</legend> 

<!-- Select Basic --> 
<div class="control-group"> 
    <label class="control-label" for="friendly_name">Page</label> 
    <div class="controls"> 
      <select id="friendlyname" name="friendlyname" class="input-xlarge"> 
     <?php foreach($pageroutes as $key): ?> 
      <option value="<?php echo $key['friendly_name']; ?>"><?php echo $key['friendly_name']; ?></option> 
     <?php endforeach; ?> 
    </select> 
    </div> 
</div> 

<!-- Select Basic --> 
<div class="control-group"> 
    <label class="control-label" for="selectbasic">Change to:</label> 
    <div class="controls"> 
     <select onchange="this.form.submit();" id="newid" name="newid"> 
     <?php foreach($page_data as $key): ?> 
      <option value="<?php echo $key['id']; ?>"><?php echo $key['pagetitle']; ?></option> 
     <?php endforeach; ?> 
     </select> 
    </div> 
</div> 

</fieldset> 
</form> 

Что представляет сюда

function updatepageid(){ 
    $this->load->model('view_model'); 
    $friendlyname = $this->input->post('friendlyname'); 
    $newid = $this->input->post('newid'); 


    $query = $this->view_model->setpageid($friendlyname, $newid); 

    if($query == TRUE){ 
     echo 'updated'; 
    }else { echo 'failed'; } 

    var_dump($query); 


} 

и моя модель view_model setpageid функцию

function setpageid($friendlyname, $newid){ 
    $this->db->where('friendly_name', $friendlyname); 
    $query = $this->db->set('page_routes','pageid', $newid); 
    return $query; 
} 

Если я var_dump ($ запроса) он возвращает

Object(CI_DB_mysql_driver)[14] 
    public 'dbdriver' => string 'mysql' (length=5) 
    public '_escape_char' => string '`' (length=1) 
    public '_like_escape_str' => string '' (length=0) 
    public '_like_escape_chr' => string '' (length=0) 
    public 'delete_hack' => boolean true 
    public '_count_string' => string 'SELECT COUNT(*) AS ' (length=19) 
    public '_random_keyword' => string ' RAND()' (length=7) 
    public 'use_set_names' => boolean false 
    public 'ar_select' => 
    array (size=0) 
     empty 
    public 'ar_distinct' => boolean false 
    public 'ar_from' => 
    array (size=0) 
     empty 
    public 'ar_join' => 
    array (size=0) 
     empty 
    public 'ar_where' => 
    array (size=1) 
     0 => string '`friendly_name` = 'aboutus'' (length=28) 
    public 'ar_like' => 
    array (size=0) 
     empty 
    public 'ar_groupby' => 
    array (size=0) 
     empty 
    public 'ar_having' => 
    array (size=0) 
     empty 
    public 'ar_keys' => 
    array (size=0) 
     empty 
    public 'ar_limit' => boolean false 
    public 'ar_offset' => boolean false 
    public 'ar_order' => boolean false 
    public 'ar_orderby' => 
    array (size=0) 
     empty 
    public 'ar_set' => 
    array (size=1) 
     '`page_routes`' => string ''pageid'' (length=8) 
    public 'ar_wherein' => 
    array (size=0) 
     empty 
    public 'ar_aliased_tables' => 
    array (size=0) 
     empty 
    public 'ar_store_array' => 
    array (size=0) 
     empty 
    public 'ar_caching' => boolean false 
    public 'ar_cache_exists' => 
    array (size=0) 
     empty 
    public 'ar_cache_select' => 
    array (size=0) 
     empty 
    public 'ar_cache_from' => 
    array (size=0) 
     empty 
    public 'ar_cache_join' => 
    array (size=0) 
     empty 
    public 'ar_cache_where' => 
    array (size=0) 
     empty 
    public 'ar_cache_like' => 
    array (size=0) 
     empty 
    public 'ar_cache_groupby' => 
    array (size=0) 
     empty 
    public 'ar_cache_having' => 
    array (size=0) 
     empty 
    public 'ar_cache_orderby' => 
    array (size=0) 
     empty 
    public 'ar_cache_set' => 
    array (size=0) 
     empty 
    public 'ar_no_escape' => 
    array (size=0) 
     empty 
    public 'ar_cache_no_escape' => 
    array (size=0) 
     empty 
    public 'username' => string 'root' (length=4) 
    public 'password' => string '' (length=0) 
    public 'hostname' => string 'localhost' (length=9) 
    public 'database' => string 'cms' (length=3) 
    public 'dbprefix' => string '' (length=0) 
    public 'char_set' => string 'utf8' (length=4) 
    public 'dbcollat' => string 'utf8_general_ci' (length=15) 
    public 'autoinit' => boolean true 
    public 'swap_pre' => string '' (length=0) 
    public 'port' => string '' (length=0) 
    public 'pconnect' => boolean true 
    public 'conn_id' => resource(50, mysql link persistent) 
    public 'result_id' => resource(57, mysql result) 
    public 'db_debug' => boolean true 
    public 'benchmark' => float 0.00099992752075195 
    public 'query_count' => int 1 
    public 'bind_marker' => string '?' (length=1) 
    public 'save_queries' => boolean true 
    public 'queries' => 
    array (size=1) 
     0 => string 'SELECT * 
FROM (`sessions`) 
WHERE `session_id` = '93072e3813e9ac20216c8cf6affc1d1b' 
AND `user_agent` = 'Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0'' (length=171) 
    public 'query_times' => 
    array (size=1) 
     0 => float 0.00099992752075195 
    public 'data_cache' => 
    array (size=0) 
     empty 
    public 'trans_enabled' => boolean true 
    public 'trans_strict' => boolean true 
    public '_trans_depth' => int 0 
    public '_trans_status' => boolean true 
    public 'cache_on' => boolean false 
    public 'cachedir' => string '' (length=0) 
    public 'cache_autodel' => boolean false 
    public 'CACHE' => null 
    public '_protect_identifiers' => boolean true 
    public '_reserved_identifiers' => 
    array (size=1) 
     0 => string '*' (length=1) 
    public 'stmt_id' => null 
    public 'curs_id' => null 
    public 'limit_used' => null 
    public 'stricton' => boolean false 

Если я пропустил что-либо, что имеет отношение к помощи при стрельбе, сообщите мне, Спасибо за ваше время, я считаю, что это простое, что я пропал без вести, так как я сам преподаю, и мое понимание не является полным Я бы хотел, чтобы это было.

ответ

1

Измените функцию следующим образом:

function setpageid($friendlyname, $newid) 
{ 
    $this->db->where('friendly_name', $friendlyname); 
    $this->db->update('page_routes', array('pageid' => $newid)); 

    return $this->db->affected_rows()>0 ? TRUE : FALSE; 
} 

Это обновит page_routes таблицу, в частности pageid столбец, со значением $newid где friendly_name = $friendlyname.

Затем он возвращает либо логическое значение true, либо false, независимо от того, были ли затронуты любые строки.

Надеюсь, это то, что вы имеете в виду?

+0

Привет, спасибо Фил, да, это было $ this-> db-> update ('page_routes', array ('pageid' => $ newid)); синтаксис Я ошибался, используя ваш, он работает по назначению, var_dump'ing запроса $ должен был попытаться выяснить, что я делаю неправильно, и не имеет никакого отношения к тому, чего я пытаюсь достичь, извините за путаницу! Принят, когда это позволит мне :). – Pheonix2105

+0

Рад, что это сработало :) –

Смежные вопросы