Как я могу динамически увеличить число в PHP - PullRequest
0 голосов
/ 18 февраля 2010

Я хочу добавить число динамически и нацелить выходные данные следующим образом.

<li data-id="id-1".. > ...</li>
<li data-id="id-2".. > ...</li>
<li data-id="id-3".. > ...</li>
<li data-id="id-4".. > ...</li>
<li data-id="id-5".. > ...</li>
<li data-id="id-6".. > ...</li>

Я пробовал это, но это не работает.

Просмотров:

for($i=1; $i<=$image_num; $i++){
      foreach($images as $image){
        echo "<li data-id=\"id-".$i."\" data-type=\"".$image['class']."\">\n<img src=\"".base_url().$image['thumbnail']."\" width=\"128\" height=\"128\" />\n<strong>".$image['name']."</strong>\n<span data-type=\"size\">".$image['shortdesc']."</span></li>\n";
            }
        }

Если есть два изображения, оно повторяется дважды, если их три, оно повторяется три раза и т. Д.

У меня есть следующие контроллер и модель.

Контроллер:

function quicksand(){
    $data['header']='Quicksand';
    $group = 'quicksand';
    $data['image_num']= $this->MQuicksand->getNumRowsByGroup($group);
    $data['images']= $this->MQuicksand->getProductsByGroup($group);

    $data['module'] = 'welcome';
    $this->load->view('general/quicksand_temp',$data);
    // $this->load->view('welcome/public/quicksand_view',$data);
}

Модель:

function getProductsByGroup($group){
     $data = array();
     $this->db->where('grouping', $group);
     $this->db->where('status', 'active');
     // $this->db->orderby('name','asc');
     $Q = $this->db->get('omc_product');
     if ($Q->num_rows() > 0){
        $num_rows = $Q->num_rows();
       foreach ($Q->result_array() as $row){
         $data[] = $row;
       }
    }
    $Q->free_result();    
    return $data; 
    return $num_rows;
 } 


 function getNumRowsByGroup($group){
     $data = array();
     $this->db->where('grouping', $group);
     $this->db->where('status', 'active');
     // $this->db->orderby('name','asc');
     $Q = $this->db->get('omc_product');
     if ($Q->num_rows() > 0){
        $num_rows = $Q->num_rows();

    }
    $Q->free_result();    

    return $num_rows;
 } 

Ответы [ 2 ]

4 голосов
/ 18 февраля 2010

если я правильно понял вопрос, вы просто хотите увеличить число. Лучше всего держать его в одном цикле:

$count = 1;
foreach($images as $image){
    echo "<li data-id=\"id-".$count."\" data-type=\"".$image['class']."\">\n<img src=\"".base_url().$image['thumbnail']."\" width=\"128\" height=\"128\" />\n<strong>".$image['name']."</strong>\n<span data-type=\"size\">".$image['shortdesc']."</span></li>\n";
    $count++;
}
1 голос
/ 18 февраля 2010

Поскольку похоже, что вам не важен ключ массива, вы можете просто использовать его:

foreach($images as $elem => $image){
  echo "<li data-id=\"id-".($elem + 1)."\" data-type=\"".$image['class']."\">\n<img src=\"".base_url().$image['thumbnail']."\" width=\"128\" height=\"128\" />\n<strong>".$image['name']."</strong>\n<span data-type=\"size\">".$image['shortdesc']."</span></li>\n";
}
...