#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. спасибо. код работает, и я понял вашу идею внести изменения