Проверка PHP Codeigniter

#php #codeigniter #postgresql

#php #codeigniter #postgresql

Вопрос:

как я могу написать код проверки с другой таблицей.

если данные уже существуют в таблице, пользователю разрешено редактировать только

еще пользователь разрешает вставлять, а затем после этого редактировать постоянно.

надеюсь, вы сможете понять дополнительные пояснения к комментарию к коду.спасибо вам, мастер.

Контроллер

 public function Test()
{

   $d['checking'] = $this->db->query("SELECT status,amount,br_loc FROM account");
   $d['test'] = $this->db->query("SELECT br_loc FROM staff");

    $this->load->view('Account/global/header');
    $this->load->view('test',$d);
    $this->load->view('Account/global/footer');
}
 

Вид

  <table class="table table-hover table-condensed">
        <thead>
          <tr>
            <th></th>
            <th>Code</th>
          </tr>
        </thead>
        <tbody>
    <?php
      foreach($checking as $c)
        {   
        foreach($data->result_array() as $row)  // data select from table ACCOUNT and show as array..From table ACCOUNt data will insert to table STAFF. 
        {       
        ?>
          <tr>
            <td><?php echo $row['br_loc'];?></td> <!--CHECKING -if data already insert in table staff show button edit else button save to insert-->
            <?php if($c['status'] == 'save')
            { ?>
            <td><button type="button" value ='Edit'  class="btn btn-primary" id="edit<?php echo $row['br_loc'];?>" >Edit</button></td>
             <?php  }
            else
            { ?>
            <td><button type="button" value ='Save'  class="btn btn-primary" id="save<?php echo $row['br_loc'];?>" >save</button></td>
           <?php  } ?>
          </tr>
         <?php
              }
            }
         ?>
       </tbody>
    </table>
 

Результат

продолжайте цикл и дублируйте.

введите описание изображения здесь

Комментарии:

1. У вас есть вложенные циклы, вот почему это происходит

2. Это странно, вы используете sql на контроллере. Я загружу модель и верну результат sql-запроса (это массив) в контроллер и задам в качестве параметра view.

3. да, это должен был сделать CI MVC

Ответ №1:

если я чего-то не упустил, но я думаю, что ваш цикл неправильный

вы задаете свои запросы в контроллере, но в представлении вы не обращаетесь к результату….

для этого $checking->result_array() $test->result_array()

  <table class="table table-hover table-condensed">
    <thead>
      <tr>
        <th></th>
        <th>Code</th>
      </tr>
    </thead>
    <tbody>
<?php
    foreach($test->result_array() as $row)  // data select from table ACCOUNT and show as array..From table ACCOUNt data will insert to table STAFF. 
    {       
    ?>
      <tr>
        <td><?php echo $row['br_loc'];?></td> <!--CHECKING -if data already insert in table staff show button edit else button save to insert-->
        <?php 
        $tempStatus = null;
        foreach($checking->result_array() as $c){
            if($c['br_loc'] == $row['br_loc']){
                $tempStatus = $c['status'];
            }
        }
        if($tempStatus == 'save')
        { ?>
        <td><button type="button" value ='Edit'  class="btn btn-primary" id="edit<?php echo $row['br_loc'];?>" >Edit</button></td>
         <?php  }
        else
        { ?>
        <td><button type="button" value ='Save'  class="btn btn-primary" id="save<?php echo $row['br_loc'];?>" >save</button></td>
       <?php  } ?>
      </tr>
     <?php
          }
    ?>
   </tbody>
</table>
 

итак, я думаю, вы хотите что-то подобное?
также для codeigniter я бы порекомендовал плагин template, он значительно облегчит вашу жизнь, вместо того, чтобы загружать тонны просмотров.

Комментарии:

1. извините, это был плохой ответ, я изменил его сейчас. комментарии в вашем сообщении верны, ваш первый цикл foreach находится не в нужном месте. его немного сложно протестировать здесь, поскольку у меня нет данных в вашей базе данных, но что-то вроде этого должно работать

2. спасибо. код работает, и я понял вашу идею внести изменения