2011-01-06 3 views
0

Hier проблема: в CodeIgniter в контроллере у меня есть следующий код:в одном запросе foreach second foreach! CodeIgniter

$query_not_voted = "SELECT * FROM photos WHERE p_id NOT IN (SELECT distinct p_id FROM p_votes where u_id = ".$this->session->userdata('u_id').") LIMIT ".$this->db->escape_str($segment_url).", ".$config['per_page']; 
$q = $this->db->query($query_not_voted); 
$data['myphotos'] = $q->result_array(); 

foreach($data['myphotos'] as $key=>$val) 
{ 
    $query_g = "SELECT * FROM users WHERE u_id = (SELECT u_id FROM p_votes WHERE p_id = ".$val['p_id'].")"; 
    $q_2 = $this->db->query($query_g); 
    $data['allvotess'] = $q_2->result_array(); 

    $query_u = "SELECT * FROM users WHERE u_id = ".$val['u_id']." LIMIT 0, 5"; 
    $q_1 = $this->db->query($query_u); 
    $data['author'] = $q_1->result_array(); 
} 

Так что теперь у меня есть $data['myphotos'], и это может быть выведен в связи со следующими кодами:

<?php foreach ($myphotos as $keys => $myphoto){ ?> 
    <div id="voteblock"> 
    <div id="voteleft"> 
     <a href="<?php echo base_url().$myphoto['p_small']; ?>" class="preview" title="<?php echo base_url().$myphoto['p_title']; ?>"><img src="<?php echo base_url().$myphoto['p_thumb']; ?>" /></a> 
    </div> 
<?php } ?> 

но как я могу вывести $data['allvotess'] в последний цикл foreach? Я попытался сделать то же самое, но не получилось.

Затем я попытался вытолкнуть результаты внутри $ data ['myphotos'] и никакого хорошего результата!

Итак, что я делаю ???

Просто нужен кто-то, кто поможет мне с foreachloop insite foreachloop !!! В течение недели я просто не могу сделать, я могу даже заплатить за решение прямо сейчас!

Я отвечал также на codeingiter форуме, но они говорят, что это легко Hier является link

ответ

0

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

$array1 = array(1,2,3,4); 
$array2 = array(1,2,3,4); 
$array3 = array(1,2,3,4); 

$second_array[] = $array1; 
$second_array[] = $array2; 
$second_array[] = $array3; 

так что теперь мы имеем $ second_array, что является многомерным массивом ...

$data->second_array = $second_array; 
$this->load->view('your/view',$data); 

в файл представления ...

<? foreach($second_array as $array): ?> //<--start first foreach loop 
    <div>do some stuff</div> 
    <? foreach($array as $array_item): ?> //<--start second foreach loop, inside the first 
     <div>do some other stuff for every item in $array</div> 
    <? endforeach; ?> //<--end first foreach 
<? endforeach; ?> //<--end second foreach